Как запустить службу намерений, когда приложение убито или уничтожено?

Я пытаюсь решить эту проблему, создав этот код, который показан ниже. Но я не получаю Результат. Кто-нибудь может помочь ответить на этот вопрос?

- В Geofence Trigging Transition уведомление не приходит, когда приложение убито. -Entry Exit Notification работает правильно, когда приложение находится в фоновом режиме, но после закрытия приложение не работает должным образом.

public void onDestroy()
{
    super.onDestroy();
    if(GpsService.mTimer != null)
    {
        startService(new Intent(context, GpsService.class));
    }
    Log.e(TAG, "onDestroy");
}

person Kinnari    schedule 10.05.2016    source источник
comment
Не уверен, как это будет работать, поскольку контекст уничтожается. попробуйте вместо этого использовать getApplicationContext()   -  person Oleg Khalidov    schedule 10.05.2016
comment
Попробуйте этот stackoverflow.com/questions/35973536/, у меня отлично работает   -  person Hiren Patel    schedule 10.05.2016
comment
пока убил приложение, что ты имеешь в виду?   -  person Marian Paździoch    schedule 17.05.2016


Ответы (2)


Из onStartCommand() вашей службы верните START_STICKY. В этом случае (в идеале) служба перезапустится, даже если приложение «убито».

(Если START_STICKY работает, не нужно запускать службу из onDestroy. Android позаботится об этом).

Однако в телефонах некоторых производителей, если вы удалите приложение из списка недавних задач, оно «принудительно убивает» приложение. В этом случае служба не будет перезапущена, и вы ничего не сможете сделать.

person Supratim Haldar    schedule 10.05.2016

 public void onDestroy()
 {
     super.onDestroy();
     if(GpsService.mTimer != null)
     {
         startService(new Intent(context, GpsService.class));
     }
     Log.e(TAG, "onDestroy");
 }

Это сначала уничтожит вашу активность, а затем будет проверено ваше состояние. Что бесполезно. Вы можете попробовать это

  public void onDestroy()
      {
          if(GpsService.mTimer != null)
          {
              startService(new Intent(context, GpsService.class));
          }
          Log.e(TAG, "onDestroy");
               super.onDestroy();

      }

`

person Community    schedule 10.05.2016