setAndAllowWhileIdle和setExactAndAllowWhileIdle之间的区别

时间:2016-02-27 05:33:13

标签: android android-6.0-marshmallow android-alarms android-doze-and-standby

AlarmManager.setAndAllowWhileIdle()AlarmManager.setExactAndAllowWhileIdle()之间有什么区别?这些如何影响Android 6.0(Marshmallow)API中引入的Doze模式?

1 个答案:

答案 0 :(得分:0)

请参阅AlarmManager的文档:

  

注意:从API 19开始(KITKAT)警报传递不准确:操作系统将移动警报以最小化唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参阅setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。 targetSdkVersion早于API 19的应用程序将继续查看之前在请求时准确传递所有警报的行为。

实际上,您提到的两种方法都指明它们的行为与没有“AndAllowWhileIdle”(setsetExact)的对应物相同。因此,其中一个将在确切时间发出警报,而另一个则不准确。