Я надеюсь, что кто-нибудь имеет представление об этом вопросе, потому что он сводит меня с ума.
У меня есть этот сервис, который я называю IssueNotifier
, и в нем есть несколько методов:
public void onCreate()
{
super.onCreate();
startService();
//initiate preferences to get values
prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
choice = Integer.valueOf(prefs.getString("bgProcessPref", "15"));
delay = choice * minute;
if (VIEWISSUES_ACTIVITY != null)
Log.d(getClass().getSimpleName(), "ServiceTest started");
}
public void onDestroy()
{
super.onDestroy();
stopService();
if (VIEWISSUES_ACTIVITY != null)
Log.d(getClass().getSimpleName(), "ServiceTest stopped");
}
private void startService()
{
final Handler handler = new Handler();
final Runnable runnable = new Runnable()
{
public void run()
{
if(VIEWISSUES_ACTIVITY.getNewIssues() > 0)
VIEWISSUES_ACTIVITY.sendNotification();
}
};
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
handler.post(runnable);
System.out.println(delay);
}
}, delay, delay);
}
private void stopService()
{
if(timer != null)
timer.cancel();
}
VIEWISSUES_ACTIVITY
- это еще одна активность, которая запускает эту службу, и у нее есть метод sendNotification (), который уведомляет пользователя о поступлении новых сообщений:
//just pass the reference to the service
IssueNotifier.setMainActivity(this);
//start the service
startService(new Intent(this, IssueNotifier.class));
Весь этот код работает нормально, но моя проблема в том, что я не хочу, чтобы VIEWISSUES_ACTIVITY запускал этот Сервис, а скорее другое действие, чтобы сделать это, когда я пытаюсь запустить Сервис с другим действием, он не работает, потому что sendNotification () входит в действие VIEWISSUES_ACTIVITY (оно должно быть там). Так как же мне достичь своей цели?