java - PendingIntent 的触发时间比我预期的要早

标签 java android

我在 Android 中开发闹钟时遇到问题。 当我触发包含必须在计划时间启动的 ActivityPendingIntent 时,它运行良好。 但是,当闹钟响起并且我按贪睡 5 分钟并使用不同的请求代码触发相同的 Activity 时,它会在我按贪睡后立即启动。

这是我在 PushActivity 中的部分源代码:

private void setAlarm() {
    final int FIVE_MINUTES = 1000 * 60 * 5;
    int replacedCode = alarmCode + 1;
    attempt = attempt+1;
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this, PushActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(PushActivity.this,
            replacedCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, FIVE_MINUTES,
    pendingIntent);
}

最佳答案

闹钟类型为 ELAPSED_REALTIME_WAKEUPset() 的时间值需要根据 SystemClock.elapsedRealtime() 指定。如果您希望在五分钟后执行某项操作,请使用 SystemClock.elapsedRealtime()+FIVE_MINUTES,而不仅仅是 FIVE_MINUTES

关于java - PendingIntent 的触发时间比我预期的要早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21965960/

相关文章:

java - 反射调用方法还是使用继承的固定方法?

JavaFX:可以从非 UI 线程安全地操纵节点的转换吗?

Android Studio 更新 0.4.0 找不到 buildConfig()

Android 应用范围 View 覆盖 (HUD)

java - 我应该如何在android中使用JWT?

android - 内存不足异常

java - 外部tomcat中spring的SSL配置

java - 删除生产服务器中的 MaxMetaspaceSize ("-XX:MaxMetaspaceSize=1g") 参数导致另一个错误 : heap out of memory error

java - 将 POJO 序列化为 json,并将某些值作为字符串或列表

.net - Web 服务使用 ksoap 方法从应用程序接收空参数