У меня есть служба для push-уведомлений, которая должна работать в фоновом режиме, даже когда мое приложение закрыто или убито (удалите последние приложения, ...). Я использую это:Служба автоматического запуска Android при остановкеSelft() с START_STICKY
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
Но у меня есть BroadcastReceiver тоже, который будет вызывать stopSelf()
в классе обслуживания при отключении устройства к сети. Этот приемник работает только тогда, когда я использую return START_NOT_STICKY
, иначе служба автоматически перезапустится.
Итак, вопрос в том, как использовать stopSelf()
с return START_STICKY
? Службу нельзя перезапускать при вызове stopSelf()
, но будет, когда основной процесс будет убит.
Спасибо за чтение.
// Изменить: Я пытался использовать отделенный процесс для обслуживания, в AndroidManifest.xml:
<service android:name="com.mypackage.name.MyService"
android:launchMode="singleTop"
android:process=":myservice" />
и использовать START_NOT_STICKY
, но процесс обслуживания до сих пор гибнут вместе с основным процессом.