gpt4 book ai didi

Android - 使用 AlarmManager 有时会在错误的时间触发警报

转载 作者:行者123 更新时间:2023-11-30 02:06:41 24 4
gpt4 key购买 nike

这个问题看起来有点奇怪,但是如果有人遇到这样的事情,请帮助我...

我创建了一个 Alarm Scheduler,它通过以下代码使用 AlarmManager 向用户发送警报:

    Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra("tk_alert_id", lastAlertId.getId()+"");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, idRandom, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), pendingIntent);

问题是,有时我会在错误的时间在我的 AlarmReceiver (BroadcastReceiver) 上收到此警报,如下图所示: image ,我不知道是什么问题......我检查了日期时间并设置为“2015-05-27 17:00:00”,但它收到了几分钟前(大约 16:57 ) ...

有人知道我在这里遇到什么样的问题吗?

最佳答案

对于 API 级别 <19,您应该使用 AlarmManager.setRepeating() 并且您的警报将在指定时间准确触发。

API 级别 >=19 及以上不再有效。 android 中发生了变化,因此所有重复的警报都不准确。

因此,如果您想实现精确的重复警报,请使用 AlarmManager.setExact()。

查看此 question了解更多信息。

编辑为了您的目的(一次性警报,在精确的时间)使用 alarmManager.setExact(....)。参见 docs

关于Android - 使用 AlarmManager 有时会在错误的时间触发警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30575401/

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