Note that there are some explanatory texts on larger screens.

plurals
  1. POCancel all pending Intents set in alarm manager in android, but not working
    primarykey
    data
    text
    <p>I am adding alarm through service and i m also creating a broadcast to cancel all the alarms(Pending Intents) with in the same service when i m pressing signout i want to unregistere all the alarms so i m calling that broadcast receiver, but still that alarm is still firing. i also tried the same thing with storing pending Intent object into an array list &amp; then the same object to remove alarm, Here is my code..</p> <pre><code>public class AddReminderService extends Service { ArrayList&lt;Integer&gt; intentArray; ArrayList&lt;pendingIntent&gt; pendingIntentArray; AlarmManager alarmManager,CancelalarmManager; ArrayList&lt;Bundle&gt; bundleArray; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); registerReceiver(cancelAlarms, new IntentFilter("com.x.y.ReminderAlerts.AlarmCancel")); } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); if (intent.hasExtra("ReminderDetails")) { @SuppressWarnings("unchecked") ArrayList&lt;HashMap&lt;String, String&gt;&gt; entries = (ArrayList&lt;HashMap&lt;String, String&gt;&gt;) intent .getSerializableExtra("ReminderDetails"); Log.v("AddReminderService", "OnStart entries size()"+entries.size()); addReminder(entries); } } private void addReminder(ArrayList&lt;HashMap&lt;String, String&gt;&gt; entries) { intentArray= new ArrayList&lt;Integer&gt;(); bundleArray= new ArrayList&lt;Bundle&gt;(); pendingIntentArray= new ArrayList&lt;pendingIntent&gt;(); for (int i = 0; i &lt; entries.size(); i++) { alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); setAlarm(i,alarmTime, activity, stringStartTime, stringEndTime, ReminderSysID); } } private void setAlarm(int position,long alarmTime, String actvity, String startTime, String endTime, String ReminderSysID) { if (alarmTime &gt; (new Date()).getTime()) { Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); intent.setAction("com.x.y.ReminderAlerts.ALARMRECIEVER"); intent.addCategory("com.x.y.ReminderAlerts.ALARMRECIEVER"); Bundle c = new Bundle(); c.putString("Actvity", actvity); c.putString("Start_tim", startTime); c.putString("Endtime", ReminderSysID); c.putInt("ReminderSysID", Integer.parseInt(ReminderSysID)); intent.putExtras(c); bundleArray.add(c); PendingIntent pendingIntent = PendingIntent.getService( getApplicationContext(), Integer.parseInt(ReminderSysID), intent,PendingIntent.FLAG_ONE_SHOT); pendingIntentArray.add(pendingIntent); intentArray.add(Integer.parseInt(ReminderSysID)); Log.i("intentArray alarm id",Integer.parseInt(ReminderSysID)+"" ); Log.e("registerReciever",""+pendingIntent); alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); } } public BroadcastReceiver cancelAlarms = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.e("cancelalarmreciever","On alarm cancel reciever"); if(intentArray.size()&gt;0){ for(int i=0; i&lt;intentArray.size(); i++){ Log.i("cancelAlarms alarm id",intentArray.get(i)+"" ); Intent tempIntent = new Intent(getApplicationContext(), AlarmReceiver.class); intent.setAction("com.x.y.ReminderAlerts.ALARMRECIEVER"); intent.addCategory("com.x.y.ReminderAlerts.ALARMRECIEVER"); intent.putExtras(bundleArray.get(i)); PendingIntent pendingIntent = PendingIntent.getService( getApplicationContext(), intentArray.get(i), tempIntent,PendingIntent.FLAG_UPDATE_CURRENT); Log.v("registerReciever",""+pendingIntent); ///.cancel(); Log.v("cancelalarmreciever index","On alarm cancel reciever"+intentArray.get(i)); CancelalarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); CancelalarmManager.cancel(pendingIntent); alarmManager.cancel(pendingIntentArray.get(i)); Log.v("cancelalarmreciever pendint intent","On alarm cancel reciever"+pendingIntentArray.get(i)); } } intentArray.clear(); pendingIntentArray.clear(); unregisterReceiver(cancelAlarms); stopSelf(); } }; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload