Планирование запуска и перезапуска службы Android в случае закрытия

#android #service #background #restart #schedule

#Android #Обслуживание #фон #перезапуск #Расписание

Вопрос:

Я пытаюсь реализовать приложение, которое будет выполнять периодическую синхронизацию с сервером, скажем, каждые 30 минут. Мне удалось успешно реализовать это с помощью приемника и службы, запускаемой через AlarmManager, однако недостатком является то, что если приложение закрывается через TaskMgr, сигнал тревоги умирает вместе с ним.

Я понимаю, что это ожидаемое поведение для ОС Android, однако я заметил, что в некоторых приложениях, таких как Facebook, есть служба, которая запускается после короткого тайм-аута, даже если приложение Facebook было закрыто в TaskMgr. Я отслеживал это и вижу, что служба исчезает и перезапускается примерно через минуту или около того. Существует ряд приложений, которые ведут себя аналогичным образом (Twitter, Dictionary, ReadItLater и т.д.)

Я хотел бы воспроизвести это поведение. Таким образом, даже если пользователь по ошибке закроет мое приложение в TaskMgr, у них все равно может выполняться периодическая синхронизация в фоновом режиме.

Заранее спасибо.

Ответ №1:

Должен быть входящий процесс, связанный со службой, если его необходимо перезапустить даже после закрытия с помощью убийц задач.Вы можете добиться этого, отображая текущее уведомление в области уведомлений до тех пор, пока существует служба, и запуская службу через startForeground ()

http://www.androiddiscuss.com/1-android-discuss/91804.html пожалуйста, проверьте ссылку

Комментарии:

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

2. Ну, я пытаюсь выяснить, как приложения, такие как Facebook, перезапускают свою собственную службу. Даже после того, как вы убьете ее с помощью task mgr, она вернется примерно через минуту. Диспетчер аварийных сигналов, похоже, не работает, потому что все аварийные сигналы также уничтожаются task mgr — должен быть другой способ..