0

Ich habe diesen Code, aber der Alarm wird nicht vom Anfang der Zeit gestartet. Ich möchte myReceiver starten von Beginn der Minuten und wiederholen Sie es von Beginn der Zeiten. Wie kann ich das erreichen?Android Alarm Manager Startzeit

PendingIntent pendingIntent3; 
AlarmManager manager =(AlarmManager) getSystemService(Context.ALARM_SERVICE); 


Intent alarmIntent3 = new Intent(getBaseContext(), myReceiver.class); 
pendingIntent3 = PendingIntent.getBroadcast(getBaseContext(), 0, alarmIntent3, 0); 


manager.setRepeating(AlarmManager.ELAPSED_REALTIME _WAKEUP, 
       SystemClock.currentThreadTimeMillis(), 
       1*60*1000, pendingIntent3); 

Antwort

1

Verwenden Sie den folgenden Code zu wiederholen Alarm einzustellen:

Intent alarmIntent3 = new Intent(getBaseContext(), myReceiver.class); 
PendingIntent pendingIntent3 = PendingIntent.getBroadcast(getBaseContext(), 0, alarmIntent3, PendingIntent.FLAG_UPDATE_CURRENT); 

// Current time 
Calendar calendarNotifiedTime = Calendar.getInstance(); 
calendarNotifiedTime.setTimeInMillis(System.currentTimeMillis()); 
calendarNotifiedTime.set(Calendar.SECOND, 0); 

// Set alarm 
AlarmManager manager =(AlarmManager) getSystemService(Context.ALARM_SERVICE); 
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendarNotifiedTime.getTimeInMillis(), 1*60*1000, pendingIntent3); 

Stellen Sie sicher, myReceiver BroadcastReceiver in Ihrem AndroidManifest.xml erklärt haben.

+0

Danke, aber es funktioniert nicht zu Beginn der Minute. Wenn ich den Empfänger in der Mitte der Minuten starte, wiederhole es in der Mitte der nächsten Minute. was ich machen muss? –

+0

Fügen Sie einfach 'calendarNotifiedTime.set (Calendar.SECOND, 0);' hinzu und versuchen Sie es erneut. Überprüfen Sie meine aktualisierte Antwort. – FAT

+0

wow, seine Arbeit. wirklich danke ... –

Verwandte Themen