在所有 Android 版本上创建准确的闹铃
随着越来越多的电池优化逐渐进入 Android 系统,AlarmManager
的方法也发生了显着变化(允许更宽松的时间)。但是,对于某些应用程序,仍需要在所有 Android 版本上尽可能准确。以下助手使用所有平台上可用的最准确方法来安排 PendingIntent
:
public static void setExactAndAllowWhileIdle(AlarmManager alarmManager, int type, long triggerAtMillis, PendingIntent operation) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
alarmManager.setExactAndAllowWhileIdle(type, triggerAtMillis, operation);
} else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
alarmManager.setExact(type, triggerAtMillis, operation);
} else {
alarmManager.set(type, triggerAtMillis, operation);
}
}