#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 — должен быть другой способ..