【发布时间】:2015-03-27 15:08:39
【问题描述】:
我正在用 Java 构建一个任务提醒(使用 Eclipse)。任务提醒需要在任务开始前的特定时间提示提醒。此外,它需要在任务开始前每 X 分钟重复一次,最后在设置任务提醒的特定时间发送最后一个提醒。
例如:
我将标题为“Deadline JAVA”的任务设置为“17:00 27-3-2015”。我需要在“16:00 27-3-2015”设置一个闹钟,每隔 5 分钟设置一次,直到“17:00 27-3-2015”。
我有这个setReminder 方法:
new ReminderManager(this).setReminder(mRowId, rCalendar, mCalendar);
mRowId是任务的ID,rCalendar是任务之前的时间,所以16:00,mCalendar是最后的提醒时间。
我正在将此代码用于 setReminder:
public void setReminder(Long taskId, Calendar when, Calendar when2) {
Intent i = new Intent(mContext, OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID, (long) taskId);
int ID = taskId.intValue();
PendingIntent pi = PendingIntent.getBroadcast(mContext, ID, i,
PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
when.getTimeInMillis(), 300000 , pi);
}
这行得通。闹钟开始响起,每 5 分钟重复一次。现在最困难的部分,我需要帮助的地方是发送一个最终警报并让警报停止重复。我该怎么做?
编辑:mAlarmManager 的代码
private AlarmManager mAlarmManager;
public ReminderManager(Context context) {
mContext = context;
mAlarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
}
【问题讨论】:
-
你能把
mAlarmManager的代码贴出来吗? -
这是一个活动还是一个服务?如果是活动,你有没有后台操作的服务组件?