Android: как запустить сервис, когда приложение видно? - PullRequest
4 голосов
/ 06 апреля 2011

Я хочу, чтобы служба запускалась в фоновом режиме всякий раз, когда одно из нескольких действий в моем приложении является видимым.

В настоящее время я привязываюсь к нему в подклассе Application, напримерИтак:

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
         bindService(new Intent(this, MyService.class), mServiceConnection, BIND_AUTO_CREATE);
    }
}

Однако, нет соответствующего onDestroy метода, в котором можно было бы отсоединить сервис.Когда закрывается последнее действие, служба продолжает работать бесконечно.

  1. Это нормально, как есть?Должен ли я просто позволить ОС завершить работу службы при нехватке памяти?
  2. В качестве альтернативы, есть ли способ сделать это для каждого вида деятельности?

1 Ответ

0 голосов
/ 06 апреля 2011

Это можно сделать очень легко. Свяжите службу с приоритетными действиями. Пока активность активна, Android будет поддерживать работу сервиса.

Когда все действия отменены, сервис автоматически отключается. (сервисы, вызываемые onbind, автоматически умирают, когда все действия по связыванию исчезают). Только когда вы используете onCreate для создания сервиса, вам следует беспокоиться об ondestroy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...