我是 Android 新手,我正在创建日期提醒应用程序,用户将在其中输入日期、时间和消息,以便在输入的日期和时间得到通知。到目前为止,我已经实现了创建警报、显示通知、单击通知、打开带有该通知详细信息的应用程序并在需要时更新、列出所有警报(我使用 SqlLite 存储数据)。
在我的警报列表页面上,单击项目时,我显示带有删除选项的警报对话框,当我单击删除时,我正在从数据库中删除警报详细信息,但无法取消警报。
这是来自 2 个类的代码,一个是我创建警报的地方,另一个是我取消警报的地方,不知道我错过了什么!!!!
Class CreateActivity extends Activity
methode setAlarm{
.....
Intent myIntent = new Intent(this.getApplicationContext(), AlarmReciever.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
db = new DatabaseHandler(this);
if(!isNotified) //create new alarm
{
Random random = new Random();
alarmId = random.nextInt(10000);
pojo = new DateBookPojo(alarmId, inDate, inTime, inMsg);
db.addReminder(pojo);
System.out.println("Adding Reminder.");
}else{ // Its from notification
pojo = new DateBookPojo(alarmId, inDate, inTime, inMsg);
db.updateReminder(pojo);
System.out.println("Updating Reminder.");
}
myIntent.putExtra("alarmId", alarmId);
pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), alarmId, myIntent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);
....
}
Here AlarmId is unique passed to PendingIntent
这是另一个列表活动,单击 AlertDialog 我正在从数据库中删除警报并尝试取消警报管理器。在这里,我使用了用于创建 PendingIntent 的相同 AlarmId
Class MyListActivity extends ListActivity
....
private void deleteReminder(int alarmId) {
System.out.println("alarmId= "+ alarmId);
DatabaseHandler db = new DatabaseHandler(this);
DateBookPojo pojo = new DateBookPojo();
pojo.setReminderId(alarmId);
db.deleteReminder(pojo); // delete alarm details from database
System.out.println("Deleted Entry. = > " + alarmId);
Intent myIntent = new Intent(this.getApplicationContext(), AlarmReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), alarmId, myIntent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
System.out.println("Cancelled Alarm. = > " + alarmId);
showList(); // Again show the new list.
}
我用谷歌搜索了很多和 stackoverflow,但在任何地方我都看到这个解决方案工作正常,但它不适合我。
有人认为我在这里注意到通知的 Onlick,我正在使用CreateActivity
该类来显示详细信息,并且在更新时,它会更新通知的警报。我想我在与Intent
&相关的 Context 周围弄乱了一些东西PendingIntent
。
请帮我。