gpt4 book ai didi

android - API 19 及更高版本中 AlarmManager setRepeating 的替代方案?

转载 作者:太空狗 更新时间:2023-10-29 16:01:24 25 4
gpt4 key购买 nike

我的应用需要非常准确的重复闹钟计时。从 API 19 开始,AlarmManager setRepeating 现在不能准确地节省电量(保存树木和所有)。

是否有任何解决方法可以让 API 19 的 setExact 方法在循环中工作?

Note: as of API 19, all repeating alarms are inexact. If your application needs precise delivery times then it must use one-time exact alarms, rescheduling each time as described above. Legacy applications whose targetSdkVersion is earlier than API 19 will continue to have all of their alarms, including repeating alarms, treated as exact.

最佳答案

如果 Google 提供了 setExactRepeating() 方法,它可能会解决您的问题。 (开个玩笑)

现在,您必须自己重新安排闹钟。

  1. 第一次使用setExact()方法设置闹钟,例如:

    alarmManager.setExact(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);

  2. 在您的 BroadcastReceiver 的 onReceiver() 中重新安排闹钟,重复时间为一天(以下代码中的 AlarmManager.INTERVAL_DAY):

    public void onReceive(Context context, Intent Intent ){

        Context danielContext = MonitorApp.getContext();
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent i = new Intent(context, ReceiverName.class);//put your own ReceiverName
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, i, 0);
    alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + AlarmManager.INTERVAL_DAY, pendingIntent);

当然,在onReceiver()方法中做一些事情来达到你的目的。

关于android - API 19 及更高版本中 AlarmManager setRepeating 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com