Локальный сервис или удаленный сервис? - PullRequest
5 голосов
/ 19 июля 2010

У меня есть фоновая служба, которая должна работать постоянно. Сервис просто должен взаимодействовать с моей деятельностью.

  1. Как проверить возобновление активности, если служба все еще работает? Есть ли лучшая возможность, чем статическая переменная в классе обслуживания?

  2. Является ли преимуществом использование удаленной службы в отдельном процессе (для продления срока службы), чтобы после прекращения процесса активности служба оставалась активной?

Ответы [ 3 ]

7 голосов
/ 19 июля 2010

У меня есть фоновая служба, которая должна работать постоянно.

Это невозможно . Пользователь или Android отключит ваш сервис в какой-то момент. Пожалуйста, пересмотрите вашу архитектуру.

Как мне проверить активность возобновить, если служба все еще работает?

Как правило, это не так.

Есть ли лучшая возможность, чем статическая переменная в классе обслуживания?

Это не сработает, если пользователь или Android отключит ваш сервис.

Является ли преимуществом использование пульта дистанционного управления? обслуживание в отдельном процессе (для продлить срок службы), чтобы при процесс деятельности убивается служба еще жива?

Удаленная служба не имеет никакого отношения к тому, запускается ли служба после уничтожения действий. Если вы позвоните по номеру startService(), служба будет работать независимо от каких-либо действий до:

  • вы звоните stopService() с занятия
  • служба звонков stopSelf()
  • Android прекращает обслуживание
  • пользователь прекращает услугу через приложение «Настройки»
  • пользователь прерывает службу через «убийцу задач» (по крайней мере, Android 2.1 и более ранние версии)
3 голосов
/ 24 августа 2010

Запустите сервис в startforeground().Это увеличит срок службы.

3 голосов
/ 19 июля 2010

Почему вы хотите знать, работает ли Сервис?Если вам нужно что-то из этого, просто бросьте Intent, и если он не запущен, он начнет с намерения.

По второму вопросу:

Ваша служба не "умрет"когда ваша активность закрывается.

...