【发布时间】:2015-03-25 09:57:32
【问题描述】:
我想创建三个警报,分别命名为 Reminder1、Reminder2、Reminder3。 我知道,我可以使用不同的 requestCode 为上述三个创建多个警报。下面嵌入了相应的代码
private void startReminderAlarm(int id, Calendar from_date, long interval) {
// TODO Auto-generated method stub
Intent remIntent;
PendingIntent pendingIntent;
AlarmManager manager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
remIntent = new Intent(mContext, ReminderReceiver.class);
remIntent.putExtra("ID", id);
pendingIntent = PendingIntent.getBroadcast(mContext, id, remIntent, 0);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, from_date.getTimeInMillis(), interval, pendingIntent);
Toast.makeText(mContext, "Alarm Set for id" + id, Toast.LENGTH_SHORT).show();
Log.d(TAG, "Alarm Set for id: " + id);
}
根据提醒的 ID,我正在启动每个警报。这工作正常。我的问题是,
1) Reminder1 闹钟设置为每天早上。
2) 为每日两次设置提醒 2。
3) 为每日三次设置提醒3。
第一种情况,不会产生问题,因为它只能设置一次并带有相应的id。
第二种情况,如果我创建两个具有相应 id 的警报,最后一个只会持续存在。第一个将被丢弃。
第三种情况,如果我创建三个具有相应 id 的警报,则最后一个仅持续存在。第一个和第二个将被丢弃。
我想创建 2 或 3 个具有特定 ID 的单独警报。
请给我建议任何解决方案。
【问题讨论】:
-
你的意思是 Reminder2 和 Reminder3 的 id 一样吗?
-
不,两者都有不同的 id。但是 Reminder2 本身我想每天设置两次(早上,晚上)。为此,我必须使用相同的 ID 对吗?像这样,Reminder3也一样,我想每天设置3次(早上,下午和晚上)。
-
我认为
setInexactRepeating可以将间隔设置为 12 小时左右。 -
但是,如果我使用间隔作为默认间隔,它将起作用。在这里,早上-下午、下午-晚上和晚上-早上之间的间隔是无关紧要的。在这种情况下,我不能将间隔用作常数。
-
您能否解释一下您希望如何每天设置两次 Reminder2。例如上午 10 点。和下午 15 点
标签: android alarmmanager android-pendingintent