2010-12-30 13 views
22

Próbuję zrobić Harmonogram.AlarmManager Android Codziennie

Należy uruchomić codziennie na 1pm i 2pm ...

W tej chwili mogę tylko zrobić to kursują co 10 sekund lub 10min ...

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class); 
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0); 

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.add(Calendar.SECOND, 10); 
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 

Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show(); 

Dzięki

Odpowiedz

-10

Ta wola alarm każdego dnia.

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmManager.INTERVAL_DAY , pendingIntent); 
+5

'set()' zadziała tylko raz. 'setRepeating()' będzie uruchamiany każdego dnia. – CommonsWare

+0

dziękuję i przepraszam za nieuwagę. –

+0

-1 Ten kod jest niepoprawny (przynajmniej od wersji SDK 2.1). AlarmManager.setRepeating akceptuje 4 parametry, a nie 3. – Valentin

89

Ten kod uruchomi Intent każdy dzień na 1 PM lub godzina czternasta

Calendar calendar = Calendar.getInstance(); 

calendar.set(Calendar.HOUR_OF_DAY, 13); // For 1 PM or 2 PM 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0); 
PendingIntent pi = PendingIntent.getService(context, 0, 
      new Intent(context, MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
           AlarmManager.INTERVAL_DAY, pi); 
+21

Możesz chcieć dodać calendar.add (Calendar.DAY_OF_YEAR, 1); aby uniknąć natychmiastowego uruchomienia alarmu. – ben

+0

Można również dodać calendar.set (Calendar.MILLISECOND, 0); aby być bardziej precyzyjnym :) – JDJ

+1

Czy to też działa, gdy aplikacja przechodzi w tło/zamknięte/wstrzymane? –

Powiązane problemy