首页 > 解决方案 > 警报管理器不适用于 Android 版本 9

问题描述

应用要求是在任何指定时间触发警报并在该特定时间执行指定任务。为了实现这一点,我使用了AlarmManager. 但它不适用于 Android 版本 9。

我使用了在 Android 7.0 上运行的警报管理器。

我使用setInexactRepeating()AlarmManager.

我尝试使用以下代码来做到这一点:

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

我希望AlarmManager必须在 Android 版本 9 上的指定时间触发。

标签: androidalarmmanagerandroid-9.0-pie

解决方案


这就是我为解决问题所做的:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
   
    am.set(AlarmManager.RTC_WAKEUP, stopTrackingAtMidnight, PendingIntent);

else
   
    am.setExact(AlarmManager.RTC_WAKEUP, stopTrackingAtMidnight, PendingIntent);

setExact()方法对我有用!


推荐阅读