2013-12-08 4 views
2

Я только что попробовал AlarmManager, чтобы заставить приложение отправлять уведомление каждый день в 3 часа дня. Но это работает только в том случае, если приложение все еще находится в фоновом режиме. Когда пользователь убивает приложение, AM больше не работает. Что я могу сделать вместо AlarmManager для достижения того, что я хочу?Android отправляет уведомление ежедневно, даже если приложение закрыто.

ответ

5

Но это работает только в том случае, если приложение все еще находится в фоновом режиме.

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

Когда пользователь удаляет приложение, АМЫ больше не работают

Если под «убивает», вы имеете в виду пользователь повернутый на «Force Stop» для вашего приложения в настройках, то ваш аварийные сообщения незапланированы, и ничто из вашего приложения не запустится до тех пор, пока пользователь не запустит ваше приложение вручную (например, краны активности вашего запуска в главном экране).

Я слышал сообщения о том, что некоторые устройства, изготовленные производителями, работающими от мозга, выполняют те же действия, что и «Силовая остановка», когда пользователи останавливают приложение из «диспетчера задач», поставляемого устройством. Это несчастливо.

В любом другом общепринятом определении «убивает» ваши сигналы тревоги не затрагиваются.

Что я могу сделать вместо AlarmManager для достижения того, что я хочу?

Ничего. Если пользователь принудительно останавливает ваше приложение, пользователь не хочет, чтобы ваше приложение запускалось, и поэтому ваше приложение не будет работать.

+0

Но скажем, мы приводим пример: WhatsApp. Когда WhatsApp не работает на моем телефоне, я все равно получаю уведомления о новых сообщениях в WhatsApp. То, что я хочу делать, как это возможно? – Phil

+0

@Phil: они используют «AlarmManager» (прямо или косвенно) или получают push-уведомления (поскольку они являются приложением для обмена сообщениями). Любой из них будет заблокирован, если пользователь принудительно остановит WhatsApp, и любой из них будет работать в других случаях. – CommonsWare

+0

Mhm Я тоже использую AlarmManager, и у меня есть кнопка на моем телефоне, которая показывает мне после нажатия, все запущенные приложения, и я могу просто прокрутить вправо или влево, чтобы закрыть их. Если я сделаю это с помощью WhatsApp, уведомления все равно будут отправлены. Если я это сделаю с моим приложением, уведомления больше не отправляются – Phil

1

Вы можете использовать липкую услугу фона, чтобы отправлять уведомления в любое время. С помощью простой службы вы можете запланировать любую задачу. Рассмотрите возможность использования wake_lock для длительных задач, которые могут потребовать, чтобы процессор не спал. Также учитывайте потребление батареи. С уважением.

Смежные вопросы