android - AlarmManager.setExact 不是等待时间间隔

标签 android broadcastreceiver alarmmanager

我有以下行

alarm.setExact(AlarmManager.RTC_WAKEUP,10000,pintent);

据我所知,我应该在 10 秒后收到从 AlarmManager 到我的广播接收器的 onReceive 的调用。我的日志如何显示它立即到达 onReceive 方法。这是正常的吗?在上面的setExact方法中指定的时间之后会触发什么方法?

最佳答案

改变这一行

alarm.setExact(AlarmManager.RTC_WAKEUP,10000,pintent);

进入

alarm.setExact(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+10000,pintent);

所以它会在10秒后到达

编辑:

来自文档 setExact()会消耗更多电量..尝试使用 set()

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.SECOND, 10);
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pintent);

关于android - AlarmManager.setExact 不是等待时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28513201/

相关文章:

android - AlarmManager 永远不会为 BroadcastReceiver 返回事件,如何调试?

android - 从 Assets 文件夹读取 Excel 工作簿时出现问题

android - 激活电池优化时如何执行后台服务

android.hardware.action.NEW_PICTURE 被触发了两次

android - 当我使用 SMS User Consent API 时 FirebasePhoneAuth 崩溃

android - AlarmManager、BroadcastReceiver 和服务不工作

android - 在同一个 Android 应用程序中使用 ActionBarActivity 和谷歌地图

android - 在Flutter中添加Firebase.initializeApp()的正确位置在哪里?

Android - Intent 声明在启动时使我的应用程序崩溃

Android 精确闹钟总是关闭 3 分钟