【发布时间】:2016-10-13 17:58:58
【问题描述】:
我已将重复时间设置为 5 秒。第一个 toast 会在 5 秒后出现,但下一次会在 1 分钟后重复。
我也尝试了 setRepeating() 的代码,它仍然不起作用。
这是我的代码:
public void constructJob(){
Intent alertIntent = new Intent(this, AlarmManagerService.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this, 0,
alertIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
GregorianCalendar.getInstance().getTimeInMillis(),
repeatTime(),
pendingIntent
);
}
public long repeatTime(){
return 5000;
}
AlarmManagerService.java
public class AlarmManagerService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "5 seconds have passed",
Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
你是否在代码中使用了 setRepeating() 而不是 setInexactRepeating()?
-
@Rajesh 是的。我也尝试过使用 setRepeating() 。它仍然会在 1 分钟而不是 5 秒后触发警报。
-
这是一个 Android 错误。见code.google.com/p/android/issues/…
标签: android alarmmanager