Android - как сделать так, чтобы мой Сервис был перезапущен?

1

У меня есть приложение Android с фоновым запущенным сервисом.

Когда служба аварийно завершает или удаляется Android, я вижу, что Android пытается снова перезапустить ее.

Однако служба никогда не перезапускается, я вижу, что Android планирует перезапуск, но это действительно происходит.

Мой код выглядит следующим образом:


@Override
public void onCreate() {
    String ns = Context.NOTIFICATION_SERVICE;
    mNotificationManager = (NotificationManager) getSystemService(ns);
    mTelephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    audio_service = (AudioManager) getSystemService(Context.AUDIO_SERVICE);


}

// This is the old onStart method that will be called on the pre-2.0
// platform.  On 2.0 or later we override onStartCommand() so this
// method will not be called.
@Override
public void onStart(Intent intent, int startId) {
    handleCommand(intent);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

 void handleCommand(Intent intent) {

        running = true;
        mTelephonyManager.listen(new IncomingListener(), PhoneStateListener.LISTEN_CALL_STATE);

    }

Что-то не хватает в моем коде, чтобы перезапустить службу?

Теги:
restart
service
crash

1 ответ

2
Лучший ответ

Вы пытались использовать startForeground()?

  • 0
    Да, я реализовал это, и это дало мне очень странное поведение, он выдал уведомление, даже когда приложение и служба не должны были работать. Дело в том, что я попытался с пустым методом onStart (), и служба, казалось, перезапустилась нормально.
  • 0
    хорошо, хорошо, Донал ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню