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

‍🧙‍♂ Detaylı bilgi için Introduction ~ 8.2 Alarm alanına bakabilirsin.

👮‍♂️ 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);

‍🧙‍♂ Detaylı bilgi için Scheduling an alarm alanına veya GitHub Koduna bakabilirsin.

⏲ 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