1

I have written a receiver and Want to schedule alarm to get called only twice in difference of certain time

public class AlarmReceiver extends BroadcastReceiver {

private String TAG = AlarmReceiver.class.getName();

/*Get Google tracker Object*/
private Tracker tracker;

private final String DATA_GRAB_TYPE_NIGHT = "night";
private final String DATA_GRAB_DURING_INTERVIEW = "during_interview";

@Override
public void onReceive(final Context context, Intent intent) {
     if(intent.getExtraString("test1").equalsIgnoreCase(DATA_GRAB_TYPE_NIGHT ))
   {
      Log.d("TAG", "NIGHT"); 
        }

    if(intent.getExtraString("test1").equalsIgnoreCase(DATA_GRAB_DURING_INTERVIEW))
   {
      Log.d("TAG", "INTERVIEW"); 
        }
 }


}

This is how I have scheduled alarm manager

    Intent nightIntent1 = new Intent(context, AlarmReceiver.class);
    nightIntent1.putExtra("test1", PreferenceKV.TRY_NIGHT_MODE_LOCATION);
    PendingIntent nightPi1 = PendingIntent.getBroadcast(context, 0, nightIntent1, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager nightMngr1 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, 1);
    cal.set(Calendar.HOUR_OF_DAY, 2);

    Log.d(TAG, "Time for Night Invocation setupAlarmManager: " + cal.toString());
    nightMngr1.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), nightPi1);


    Intent nightIntent2 = new Intent(context, AlarmReceiver.class);
    nightIntent2.putExtra("test1", PreferenceKV.TRY_NIGHT_MODE_LOCATION);
    PendingIntent nightPi2 = PendingIntent.getBroadcast(context, 0,          
    nightIntent2, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager nightMngr2 = (AlarmManager) 
    getSystemService(Context.ALARM_SERVICE);

    Calendar cal2 = Calendar.getInstance();
    cal2.add(Calendar.DATE, 2);
    cal2.set(Calendar.HOUR_OF_DAY, 2);
    nightMngr2.set(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), nightPi2);

Will first alarm get canceled ?? How Android decide to cancel previous alarm manager ??

Lokesh Tiwari
  • 10,496
  • 3
  • 36
  • 45
  • See the explanation here http://stackoverflow.com/questions/15043206/clarification-on-the-docs-for-pendingintent-flag-cancel-current – Febi M Felix Mar 11 '16 at 11:56

0 Answers0