I have 2 BroadcastReceivers and 2 intents, I want to click a button, 5m later start broadcast1 and 10m later start broadcast2, what's happening is they both start 10m after I click, My guess is, the intents are not unique, but I'm setting a diffrent reqeustCode for each of them.
Button's OnClick:
Bundle bd = new Bundle();
bd.putInt("mInt", i);
Intent intent1 = new Intent(getActivity(), Broadcast_1.class);
intent1.putExtras(bd);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(getActivity().getApplicationContext(), i, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager1 = (AlarmManager) getActivity().getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmManager1.setRepeating(AlarmManager.RTC, System.currentTimeMillis()+1000*60*5, 1000*60*10, pendingIntent1);
Toast.makeText(getActivity(), "countdown started "+i ,Toast.LENGTH_SHORT).show();
Intent intent2 = new Intent(getActivity(), Broadcast_1.class);
intent2.putExtras(bd);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(getActivity().getApplicationContext(), i+42212342, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager2 = (AlarmManager) getActivity().getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmManager2.setRepeating(AlarmManager.RTC, System.currentTimeMillis()+1000*60*10, 1000*60*10, pendingIntent2);
BroadcastReceiver_1 and _2 (they look the same) class:
public class Broadcast_1 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Calendar c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
int minutes = c.get(Calendar.MINUTE);
ShowTextFragment.setText("Broadcast_1" + " at " + minutes + " : " + seconds);
}
}
Question: Why does the most recent intent push the previous intents to his starting time?
I confirmed this behaviour by printing the time when the Broadcast's code executes. Please help