我正在 Android P beta 版本 4 上测试我的应用程序。我的应用程序目标SdkVersion是27
据观察,警报管理器通知未按预期工作。我使用下面的代码来设置通知 -
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, AlarmIntentBuilder.buildPendingIntent(context, uri));
} else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, triggerAtMillis, AlarmIntentBuilder.buildPendingIntent(context, uri));
} else {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, AlarmIntentBuilder.buildPendingIntent(context, uri));
}
我在 Android 8.0 上测试了相同的逻辑,但运行良好。在 Android 9.0 中,通知可以正常工作,但有时根本不起作用。此外,如果它们工作的话,它们并不精确,并且需要花费太多时间,即使应用程序位于前台,也会发生这种情况。
逻辑是,我有在特定时间设置的重复提醒,并且这些提醒应该每天在指定时间重复。此外,这些都是高优先级提醒,应该在准确的时间着陆,所以我使用 setExact,一旦收到通知,它就会显示出来,并设置下周同一天的新闹钟。
我检查了Android P API文档,但找不到任何影响其工作的链接报警管理器和通知。我认为造成问题的唯一原因是Android P 中的电源管理和优先级桶。但是,即使应用程序位于前台,通知也无法正常工作。
我这里缺少任何东西。任何帮助深表感谢。