0

我正在我的应用程序中添加一些通知并将给定的数据存储在数据库中。现在我想更新存储在数据库中的数据,我想删除以前数据的通知,为更新的数据创建通知。我正在使用请求代码递增的警报管理器数组列表。谁能帮我删除旧通知并创建新通知。如果您需要查看代码,我会发布它。

for(int i=0;i

                        if(j==0){
                                  longobjDate=objDate.getTime();
                            longobjTime=objTime1.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);

                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);
                        }
                        if(j==1){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime2.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);



                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }
                        if(j==2){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime3.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);


                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }
                        if(j==3){
                            longobjDate=objDate.getTime();
                            longobjTime=objTime4.getTime();
                            long longDay=longobjDate+longobjTime+19800000;
                            Intent intent=new Intent(New_Med.this,Alarm_Reciever.class);
                            PendingIntent pendingIntent=PendingIntent.getBroadcast(New_Med.this, k, intent, 0);
                            AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);

                            alarmManagers.add(alarmManager);
                            alarmManagers.get(k).set(AlarmManager.RTC_WAKEUP, longDay, pendingIntent);


                            Toast.makeText(New_Med.this, "Alarm set", Toast.LENGTH_SHORT).show();
                            k=k+1;
                            db1.insertNotificationDetails(med_id, longobjDate, longobjTime);

                        }

                    }
                    long t=objDate.getTime();
                    t=t+(24*60*60*1000);
                    objDate= new Date(t);
                }

我正在保存这样的警报管理器。我对android完全陌生。所以请通过编码示例方式帮助我......

4

2 回答 2

1

老兄用这个

notificationManager.cancel(NOTIFICATION_ID);  

这里 NOTIFICATION_ID 是 int 并且必须被定义,以便它可以在活动中唯一标识

于 2012-02-17T07:14:26.283 回答
0

找到特定通知的请求代码并使用 AlarmManager 类对象取消待处理的意图。例如:

    AlarmManager alarmManager4 = (AlarmManager)getSystemService(ALARM_SERVICE);
    Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);
    PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), <request_code>, I, 0);
    alarmManager4.cancel(P);
    P.cancel();

如果您使用警报管理器取消,那么它的通知也可以被取消,因为它是从警报管理器启动的。

于 2012-02-17T06:47:39.977 回答