【发布时间】:2019-08-28 23:08:34
【问题描述】:
我在 Play 商店中有一个闹钟应用程序,它在大多数设备上运行良好,但不幸的是,有些设备报告在调整后的时间不会触发闹钟,我从研究中得出结论,有些设备会限制应用程序在后台运行并杀死警报管理器!
我使用以下代码处理了打盹模式:
if (Build.VERSION.SDK_INT >= 23)
{
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, timeStamp, pendingIntent);
}
else if (Build.VERSION.SDK_INT >= 19)
{
alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeStamp, pendingIntent);
}
else
{
alarmManager.set(AlarmManager.RTC_WAKEUP, timeStamp, pendingIntent);
}
但在某些设备上这似乎还不够。
我已经读到前台服务可以防止系统终止应用程序,但是我也无法确保这一点,因为我手头没有发生问题的设备。
我想确保我的警报在所有设备上都能正常工作并处理所有情况,那么有什么办法可以确保我的应用程序正常运行并且不会被系统杀死?
【问题讨论】:
标签: android alarmmanager clock android-doze