Как сохранить сервис?

1

Любое приложение, которое имеет сервис, очевидно, рассчитывает, что он всегда будет работать. Это часть продукта, и если это платное приложение - пользователь ожидает его.

Однако, похоже, что нет никакой возможности для службы не получить wacked, если ОС Android чувствует давление памяти или если что-то пойдет не так, и служба сбой.

Каков наилучший способ убедиться, что служба всегда работает?

Можно ли создать вторую услугу, которая время от времени запускает "полезную" услугу, и если она будет запущена, она будет проигнорирована?

  • 2
    Не делай этого. Вы просто будете убиты убийцей задач, и ваши пользователи не должны будут убивать ваш сервис. Вместо этого используйте AlarmManager.
Теги:
service
process-management

2 ответа

3

Честно говоря, я не уверен, что это хорошая идея, как и все.

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

Если вы пишете услугу жнеца, ее тоже можно вытащить.

И как вы говорите: "И если это платное приложение - пользователь ожидает его". - пользователь также ожидает, что приложения будут играть приятно

  • 1
    +1 за "пользователь ожидает, что приложения хорошо играют"
1

Если ваша служба "критическая", вы можете использовать startForeground, которая придает вашей службе такой же приоритет, как и активность на переднем плане.

  • 0
    Я просто переписал свой код, используя AlarmManager и IntentService, но кажется, что каждый раз, когда мое приложение запускается и регистрируется сигнал тревоги, оно срабатывает через собственный экземпляр, который уже запущен и умирает. Тревога перестает срабатывать также каждый час, так какой смысл в любом случае?

Ещё вопросы

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