Question

I am adding some notification in my app and storing the data given in a database. Now I want to update the data stored in the database and I want to remove notification for previous data create notification for updated data. I'm using an arraylist of alarm manager with request codes incrementing. Can Anyone help me to delete the old notification and create new notification. If you need to see the code I will post it.

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);
                }

I am saving alarm managers like this. I'm totally new to android. So please help me by a coded example way...

Was it helpful?

Solution

Find the request code of the particular notification and use AlarmManager class object to cancel the pending intent. For Example:

    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();

If you cancel using alarm manager, then its notification can also be cancelled since it gets initiated from alarm manager.

OTHER TIPS

dude use this

notificationManager.cancel(NOTIFICATION_ID);  

here NOTIFICATION_ID is int and must be defined so it can be identified uniquely in activity

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top