我在Android中开发闹钟时遇到问题。
当我触发PendingIntent
包含必须在预定时间启动的Activity
时,它运行良好。
但是,当闹铃响起并按下贪睡5分钟并触发带有不同请求代码的SAME 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);
}
答案 0 :(得分:3)
需要根据set()
指定警报类型为ELAPSED_REALTIME_WAKEUP
的{{1}}的时间值。如果您希望在五分钟后执行某项操作,请使用SystemClock.elapsedRealtime()
,而不仅仅是SystemClock.elapsedRealtime()+FIVE_MINUTES
。