25 Aralık 2016 Pazar

AlarmManager Sınıfı

constructor
Şöyle yaparız.
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
INTERVAL_DAY Alanı
Şöyle yaparız. Bir günün milisaniye cinsinden uzunluğudur.
AlarmManager.INTERVAL_DAY;
Şöyle yaparız.
Date date = ...;
PendingIntent intent = ...;
am.setRepeating(AlarmManager.RTC_WAKEUP, date,AlarmManager.INTERVAL_DAY, intent);
setExact metodu
Şöyle yaparız.
PendingIntent pendingIntent = ...;

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 20);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
  am.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  
} else {
  am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  
}
setRepeating metodu
İkinci parametre alarmın ne zamandan itibaren çalışacağını belirtir. Üçüncü parametre (interval) milisaniye cinsindendir ve çalışma aralığını belirtir.

Örnek 1
Alarmın hemen başlayarak 23 saatte bir tekrar etmesi için şöyle yaparız.
PendingIntent pendingIntent = ...;
am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
                23 * 60 * 60 * 1000,pendingIntent);
Örnek 2
Alarmın saat 6'da başlayarak 24 saatte bir tekrar etmesi için şöyle yaparız. Önce bugünün saat 6'sını ayarlarız.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 6);
calendar.set(Calendar.MINUTE, 0);
int interval = 1000 * 60 * 60 * 24;
Sonra alarmı kurarız
//Repeating on every 24 hours interval
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                AlarmManager.INTERVAL_DAY, pendingIntent);


Hiç yorum yok:

Yorum Gönder