我正在开发一个警报应用程序,因为我正在使用警报管理器的概念,用户可以选择否。我写了一些代码,它的工作问题是,当用户更改警报的剩余天数(例如3天而不是5天)之前设置(5天)警报不清楚总共8个警报来(5+3)请任何人解决我的问题。
dbcal.set(currentcal.get(Calendar.YEAR), mnth,dt);
Log.e("dbCal Alarm","first"+dbcal.getTime());
if(!dbcal.getTime().before(currentcal.getTime())){
uniqueno++;
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(SampledateActivity.this,AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(SampledateActivity.this, uniqueno, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, dbcal.getTimeInMillis(), pi);
}
for(int k = 1 ; k <= time ;k++){
Log.e("Entered to alarm","yes");
dbcal.add(Calendar.HOUR, -24);
if(!dbcal.getTime().before(currentcal.getTime())){
uniqueno++;
Intent intentlocal = new Intent(SampledateActivity.this,AlarmReceiver.class);
PendingIntent pilocal = PendingIntent.getBroadcast(SampledateActivity.this, uniqueno, intentlocal, 0);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, dbcal.getTimeInMillis(), pilocal);
Log.e("dbCal Alarm","k: "+"k value:"+k+(time*i+k)+":"+dbcal.getTime());
}
}发布于 2012-02-15 17:32:37
使用您用来创建PendingIntent以启动PendingInent的相同requestCode创建Alarm。
Intent intentlocal = new Intent(SampledateActivity.this,AlarmReceiver.class);
PendingIntent pilocal = PendingIntent.getBroadcast(SampledateActivity.this,
uniqueno, intentlocal, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.cancel(pilocal);
pilocal.cancel();发布于 2012-02-16 14:36:31
我找到了我的问题的解决方案。每次我刷新我的活动。即,当我点击中的set alarm按钮时,我已经刷新了我的活动。因此,在设置之前,将删除报警并创建新输入的报警。
https://stackoverflow.com/questions/9290798
复制相似问题