Ich habe 2 BroadcastReceivers und 2 Absichten, ich möchte eine Schaltfläche klicken, später 5m starten Broadcast1 und 10m später broadcast2 beginnen, was passiert ist, dass sie beide 10m starten, nachdem ich auf, meine Vermutung ist, die Absichten sind nicht einzigartig, aber ich setze für jeden einen unterschiedlichen reqeustCode.Sonderbare Alarmmanager Verhalten
Knopf 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 und _2 (sie sehen gleich aus) Klasse:
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);
}
}
Frage: Warum die jüngste Absicht drücken Sie den vorherigen Absichten zu seiner Startzeit?
bestätigte ich dieses Verhalten durch den Zeitdruck, wenn der Code ausgeführt wird Broadcast. Bitte helfen
Wie nahe müssen die Alarme sein, damit Android sie gruppiert?Ich teste das mit einer kurzen Zeit, aber ich möchte es tatsächlich mit täglichen oder wöchentlichen Intervallen verwenden. –
Ich weiß es nicht und du solltest dich nicht darauf verlassen, wenn du etwas genaues Timing brauchst. Dies ist alles anbieterspezifisch, so dass Sie möglicherweise feststellen, dass das Verhalten/Timing auf einem Samsung-Gerät anders ist als auf einem HTC- oder LG-Gerät (zum Beispiel). –
Gut, aber ich möchte nicht unnötig das Benutzerabwehrsystem entleeren, es wird so viele Alarme geben wie Ereignisse, die der Benutzer hinzufügt, also kann es eine Menge sein, hast du eine kleine Vorstellung davon, wie viel Zeit es für sie ist Gruppe? –