2016-04-14 23 views
2

Kullanıcı isteğine bağlı olarak, wifi ve bt'yi daha sonra programlamak için AlarmManager'u kullanan bir uygulama yapıyorum.AlarmManager - Bir şey planlanıp programlanmadığını öğrenmek için

Çalışıyor. Bir sonraki adım, kullanıcının iptal etmesine izin vermektir. Doğal olarak, aktivite öldürebilir. bu senaryoyu düşünün:

  1. Kullanıcı daha sonra
  2. Kullanıcı uyku telefonu koyar 30 dakika boyunca alarm setleri, etkinlik öldürüldü
  3. Kullanıcı ahizeyi kaldırır ve isteği iptal etmek uygulamayı tekrar açılır.

Yeni oluşturulan etkinlik içinde bir şey planladığımı nasıl bilebilirim?

Ayrıca, bu uygulama için bir widget yapmak istiyorum, bu yüzden bilgileri etkinlikten widget'a (ve potansiyel olarak diğer öğelere) nasıl iletebilirim?

iptal etmek istediğiniz alarm ile ilişkilidir bekleyen niyet al -

int type = AlarmManager.ELAPSED_REALTIME_WAKEUP; // wake up CPU after said time 
long delay = SystemClock.elapsedRealtime() + minutes * 60 * 1000; 
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 

AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
    // Need to use this method, otherwise Doze is killing us 
    manager.setExactAndAllowWhileIdle(type, delay, alarmIntent); 
} 
else { 
    manager.setExact(type, delay, alarmIntent); 
} 

cevap

0

Böyle herhangi alarmı iptal edebilirsiniz:

Bu benim kurulum alarmı nasıl. Daha sonra iptal etmek için .

AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); 
manager.cancel(alarmIntent); 
İlgili konular