Когда служба была убита, как ее автоматически перезапустить?Как перезапустить убитую службу автоматически?
иногда даже не называя onDestroy()
Когда служба была убита, как ее автоматически перезапустить?Как перезапустить убитую службу автоматически?
иногда даже не называя onDestroy()
Если у вас есть служба убит, система попытается перезапустить его позже. Прочитано more.
Переопределяет onStartCommand()
и дает START_STICKY
или START_REDELIVER_INTENT
(в зависимости от ваших потребностей) в качестве возвращаемого значения. После этого система перезагрузит вашу службу, пока вы явно не остановите службу.
http://developer.android.com/reference/android/app/Service.html#START_REDELIVER_INTENT
http://developer.android.com/reference/android/app/Service.html#START_STICKY
Я делаю START_STICKY. работая нормально в nexus 5 и перезапустив службу. Но в xiaomi служба убивается, как только мое заявление убивает. – Abhi
Я унаследовал IntentService, так что я должен был быть нежным. Он работал для меня, когда я отменяю onStartCommand(), но
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
То есть, пусть родителю делать то, что он должен и вернуть START_STICKY.
Я делаю то же самое. работая нормально в nexus 5. Но в xiaomi служба убивается, как только мое заявление убивает. – Abhi
В плохих случаях вы можете запустить будильник, чтобы убедиться, что ваш сервис является живым. Остерегайтесь использовать его слишком часто, так как бодрствование процессора стоит от батареи. У вас есть приложение, которое оживляет салфетки, чтобы уволить? – Meymann
Если ваша служба была убита, это связано с тем, что пользователь либо ее убил, либо операционная система была низкой в памяти. Это означает, что вы, вероятно, не должны перезапускать его. Вы не должны оставлять длительные сервисы вроде этого – Falmarri
спасибо за ответ, но есть некоторые услуги, когда я их убил, они скоро перезагружатся. – SEed