2010-12-30 30 views
22

Bir Zamanlama Yapmaya Çalışıyorum. Ben sadece her 10 sn veya 10min çalıştırmak yapabilirsiniz Şu anda bu 1 de veya 2 de her gün çalışmalıdır AlarmManager Android Her Gün

...

...

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(); 

Teşekkür

cevap

-10

Bu irade alarm her gün.

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

'()' yalnızca bir kez ateş edeceği ayarlayın. setRepeating() 'her gün ateş edecek. – CommonsWare

+0

Teşekkür ve yanlışlık için özür dilerim. –

+0

-1 Bu kod doğru değil (en azından SDK 2.1'den itibaren). AlarmManager.setRepeating 3 parametresi kabul etmez, 3. – Valentin

89

Bu kod 1 PM her gün Niyet çalışacak ya 14:00

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

calendar.add (Takvim.DAY_OF_YEAR, 1) eklemek isteyebilirsiniz; Alarmı hemen yakmamak için – ben

+0

Ayrıca, calendar.set (Takvim.MILLISECOND, 0); Daha net olmak için :) – JDJ

+1

Uygulama ayrıca arka plan/kapalı/duraklatılmış olduğunda da çalışır mı? –

İlgili konular