首页 > 解决方案 > Alarmmanager 和 Jobscheduler 不可靠。应用程序如何在 Android 9 和 10 中按时提供通知?

问题描述

这个问题可能已经被问了一千次了,但请不要将其标记为重复。我已经浏览了警报管理器和 Jobscheduler 上在线提供的所有问题/论坛/建议/文档,但我仍然无法让它们在指定时间始终如一地工作。其他问题的答案要么很老,要么不再适用,要么不充分。

用例:在日历上提供下次会议通知;在 X 时间提醒用户做某事;在 X 时间,获取用户的位置以触发服务(如家庭自动化,当用户在家附近时,发生 XYZ)。

我试过的: Jobscheduler:这很好用,除非应用程序进入打盹模式。为此,我使用了警报管理器。

AlarmManager:所有方法我都一一尝试过,从setAlarmClock()、setExactAndAllowWhileIdle()、setExact()开始。除了设备进入打盹模式外,它们都可以工作。

主要问题是它们中的大多数即使在设定时间的一个小时内也不会触发(在 Android Q / 10 上测试)。这太不准确了,其他应用程序如何运行?例如日历、优步等应用程序?

我肯定错过了什么。

标签: androidservicealarmmanager

解决方案


推荐阅读