Her 10 saniyede bir güncelleme bildirimi göndermek için örnek kod takip ediyorum. Kod aşağıdaki gibidir ve AppWidgetProvider
için UpdateService
'dadır. Bir Thread.sleep(10*1000);
koyarsam, hizmet döngüsümün beklenen davranışını görebilirim. Açıkçası, temelde yanlış olan, hemen tetikleyen bir şey var. Güncellememi dinleyicime yayınlayacak bir alarmın PendingIntent
olması gerekiyordu.Neden android alarm yöneticim anında ateş ediyor?
long nextUpdate = 10*1000;
Log.d(TAG, "Requesting next update in " + nextUpdate + " msec.");
Intent updateIntent = new Intent(ACTION_UPDATE_ALL);
updateIntent.setClass(this, UpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0);
// Schedule alarm, and force the device awake for this update
AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
nextUpdate, pendingIntent);
Hızlı ve doğru yanıt için her iki + 1'e de teşekkürler. Bir sonraki probleme. İronik olarak, çok yakında ikinci bir yorum yapmaya çalıştım (<15 saniye), bu yüzden SO'dan bir zamanlayıcı pop notu aldım. :)) – mobibob
bunu böyle yapıyorum 'amAlarm1.setInexactRepeating (AlarmManager.RTC_WAKEUP, 120000, AlarmManager.INTERVAL_DAY, alarm1Pending); hala bekleyen niyet anında ateş ediyor? ' –
@MuhammadBabar: Gerçekten yeni bir soru göndermelisin. Ama yine de sorunuzu yanıtlamak için, bu yeni bilgi için (120000 sadece test için) "Fri, 02 Ocak 1970 09:20:00 GMT" – Falmarri