- ⏰ Belirli sürelerde tetiklenen
Intent
işlemleridir - 🙇♂️ Uygulama kapalı olsa hatta telefon uykuda olsa bile çalışır
- 📈 Arka plan işlemlerinin tekrarlanma sıklığını azalttığından verimliliği artırır
- 👨💼
AlarmManager
üzerinden,Intent-Filter
yapısı gibi yönetilir
🙄 Telefondaki alarmdan bahsetmiyorum.
{% hint style="info" %} 🧙♂ Detaylı bilgi için Introduction ~ 8.2 Alarm alanına bakabilirsin. {% endhint %}
- 🚩 Uygulaman üzerinde çalışacak olan eylemlerde kullanılmaz
- ✨
Handler
,Timer
veyaThread
yapısı tercih edilmelidir - 🔄 Sunucu ile güncelleme işlemlerini bu yapı ile yapmayın
- 🔥 Firebase Cloud Messaging üzerindeki
SyncAdapter
yapısı ile yapılır
- 🔥 Firebase Cloud Messaging üzerindeki
- ⌚ Beklemeli işlemler için
JobScheduler
yapısını tercih edin- 📶 Wi-Fi bağlandığında haberleri veya hava durumunu güncelleme gibi
- ✨ Dakikada çok fazla tekrarlanacak işlemler için
Handler
yapısını tercih edin - 🐣
getSystemService(ALARM_SERVICE)
metodu ileAlarmManager
sınıfı alınır - ✔️ Alarm türünü belirleyin ve
set...(<tip>, <süre>, <PendingIntent>)
metodu ile tanımlayın
alarmMgr.set(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + 1000*300,
alarmIntent);
{% hint style="info" %} 🧙♂ Detaylı bilgi için Scheduling an alarm alanına veya GitHub Koduna bakabilirsin. {% endhint %}
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES,
alarmIntent);
boolean alarmExists =
(PendingIntent.getBroadcast(this, 0,
alarmIntent,
PendingIntent.FLAG_NO_CREATE) != null);
alarmManager.cancel(alarmIntent);
- ⏰ Kullanıcıya gösterilen alarm türleridir
- 🕐
AlarmClock
yapısı olarak ele alınır - 🙇♂️ Genellikle uyandırma çağrıları için kullanılır
{% embed url="https://codelabs.developers.google.com/codelabs/android-training-alarm-manager/\#0" %}