Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cancelling a single alarm when you have multiple alarms

I have used the same pendingIntent to set multiple alarms using different intentId for each. the alarm is working. Now i want to cancel a particular alarm. If i use the cancel() method i would end up cancelling all the alarms. I want only a specific one to be deleted. Also the user should be able to cancel this alarm even during a second or a third launch. As in when i launch it the second time, i won't be having the same pendingIntent object. Would i have to persist the pendingIntent object? If so, how? and how do i cancel a single alarm from multiple alarms?

like image 783
flamesavor Avatar asked Jan 16 '12 08:01

flamesavor


1 Answers

You can do it like this,

In your Pending Intent you can pass a unique ID in place of requestCode

PendingIntent pi = PendingIntent.getBroadcast(context, unique_id, i, 0);

And to cancel you can use the same unique ID to cancel it, using the same Pending Intent.

am.cancel(pi);

For getting more information you can just use StackOverflow or Google, for now I think this answer will do for you. :)

like image 103
Lalit Poptani Avatar answered Oct 24 '22 23:10

Lalit Poptani