Привет, я использую сервис на устройствах из API 15. Мне нужно поймать, когда сервис умирает сам или когда пользователь убивает приложение из задачи и остановки службы.Как поймать, когда служба умерла?
вот моя служба:
@Override
public void onCreate() {
super.onCreate();
mTimerIntent = new Intent(SERVICE_TIMER_BROADCAST);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null){
mTimerType = intent.getExtras().getInt(TIMER_TYPE_KEY);
mTimer.run();
}
return START_NOT_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("test", "onDestroy");
setLoginStatusFailed();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
Log.d("test", "onTaskRemoved");
setLoginStatusFailed();
}
private void setLoginStatusFailed(){
new USB_LogOut(getApplicationContext());
}
на KitKat устройстве он прекрасно работает, но когда я попробовал его на 4.0 это does't работа ...
Любые идеи, почему это происходит и как чтобы исправить это?
спасибо, я знаю, что это :) вопрос в том, как поймать, когда служба умер –
Как я сказал в моем ответе это не возможно, чтобы получить срабатывает, когда служба уничтожается в определенных ситуациях. Просто подумайте, что система может убить некоторые службы, когда сценарий с низкой памятью приходит на сцену ... возможно, это убьет службу, и там вы активизируете, чтобы уничтожить, можно перезапустить службу программист в данный момент сам ... где какой шаг, предпринятый системой для обработки сценария, - это отходы справа .. я сказал пример ... –
Извините, когда я печалью «скончался сам по себе», я имею в виду момент, когда таймер закончит и запустит команду stopSelf(). мои цели - уловить момент, когда служба умерла, но я не хочу ее перезапускать) на самом деле все это хорошо работает на устройствах 4.2, 4.4, 5.0, но не на 4.0 –