Skip to content

Latest commit

 

History

History
88 lines (60 loc) · 3.97 KB

alarm.md

File metadata and controls

88 lines (60 loc) · 3.97 KB

⏰ Alarm

👀 Alarm Yapısına Bakış

  • ⏰ 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 %}

👮‍♂️ Kullanmaman Gereken Durumlar

  • 🚩 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
  • ⌚ Beklemeli işlemler için JobScheduler yapısını tercih edin
    • 📶 Wi-Fi bağlandığında haberleri veya hava durumunu güncelleme gibi

🔸 Alarm Türleri

🧱 Temel İşlemler

🏗️ Alarm Kurma

  • ✨ Dakikada çok fazla tekrarlanacak işlemler için Handler yapısını tercih edin
  • 🐣 getSystemService(ALARM_SERVICE) metodu ile AlarmManager 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 %}

⏲ Tekrarlı Alarmlar

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
               calendar.getTimeInMillis(),
               AlarmManager.INTERVAL_FIFTEEN_MINUTES,
               alarmIntent);

👨‍💼 Olan Alarmı Kontrol Etme

boolean alarmExists = 
 (PendingIntent.getBroadcast(this, 0, 
       alarmIntent,
       PendingIntent.FLAG_NO_CREATE) != null);

☠️ Alarmı Öldürme

alarmManager.cancel(alarmIntent);

🙇‍♂️ Wake Up (Uyandırma)

👁️ Görülebilir Alarmlar

  • ⏰ 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

🔗 Faydalı Bağlantılar

{% embed url="https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-3-working-in-the-background/lesson-8-alarms-and-schedulers/8-2-c-alarms/8-2-c-alarms.html" %}

{% embed url="https://codelabs.developers.google.com/codelabs/android-training-alarm-manager/\#0" %}