Android SetAndAllowHileId和SetExactAndAllowHileId之间的差异

Android SetAndAllowHileId和SetExactAndAllowHileId之间的差异,android,android-6.0-marshmallow,android-alarms,android-doze-and-standby,Android,Android 6.0 Marshmallow,Android Alarms,Android Doze And Standby,AlarmManager.setAndAllowHileId()和AlarmManager.setExactAndAllowHileId()之间有什么区别?这两者如何影响Android 6.0(棉花糖)API中引入的睡眠模式?请参阅AlarmManager的文档: 注意:从API 19(KITKAT)开始,警报传递是不准确的:操作系统将切换警报,以尽量减少唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参见设置窗口(int,long,long,pendingent)和设置精确窗口(

AlarmManager.setAndAllowHileId()和
AlarmManager.setExactAndAllowHileId()之间有什么区别?这两者如何影响Android 6.0(棉花糖)API中引入的睡眠模式?

请参阅
AlarmManager
的文档:

注意:从API 19(KITKAT)开始,警报传递是不准确的:操作系统将切换警报,以尽量减少唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参见设置窗口(int,long,long,pendingent)和设置精确窗口(int,long,pendingent)。targetSdkVersion早于API 19的应用程序将继续看到之前的行为,其中所有警报都会在请求时准确传递


事实上,您提到的两种方法都指定它们的行为与没有“AndAllowHileId”(
set
setExact
)的对应方法类似。因此,其中一个会在准确的时间发出警报,而另一个则不准确。

棉花糖打盹对这些API有什么影响?@Malwinder推测,如果设备打盹,则“AndAllowHileidle”的警报仍会发出。