Kayıt Ol

Giriş

Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Giriş

Kayıt Ol

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu. Fusce viverra neque at purus laoreet consequa. Vivamus vulputate posuere nisl quis consequat.

Android Alarm Manager Kullanımı

Merhaba Arkadaşlar ,
Mobilhanem.com sitemizden anlattığımız/yayınladığımız derslerimize bu dersimizde, Android Alarm Manager kullanımı dersi ile devam ediyoruz.

Alarm Manager , android cihazlar da alarm servisine erişebilmemiz için oluşturulan bir sınıftır. Örneğin uygulama içinde alarmımız ayarlanır ve uygulama kapatılır. Belirtilen alarm aralığına göre uygulamamız kapalı olsa bile alarm çalışır bu android de arkan planda çalışan servisler tarafından gerçekleşir.

Bu servisler sayesinde kullanıcıya hem kullanıcıya uyarı verilebilir hemde istenen alarm olayı tetiklenir. Aslında uyarılar için iki temel saat tipi vardır. Android Alarm Manager Kullanımını çeşitli zaman tiplerine göre gruplandırabiliriz ; geçirilen zamana göre uyarı almak istiyorsanız ( elapsed real time ) kullanılır.    ( örnek verecek olursak; her yarım saat de bir alarm olayının tetiklenmesi ), gerçek zamana göre uyarı almak istiyorsanız ( real time clock ) kullanılır. ( örnek verecek olursak; saat öğlen saat 4 de alarmın tetiklenmesi vb. ) Her iki türde de telefon ekranı kapalı dahi olsa cihazı uyandırmak mümkündür.

  • RTC_WAKEUP : Belli bir zamanda, sıra bekleyen Intent’i çalıştırmak için cihazı uyandırır.

( Aşağıdaki kod a baktığımızda öğlen saat 4 de alarm  çalacak şekilde alarm kurulur. ( not: alarm günde bir kere belirtilen saat de çalışır. )

  • RTC : Belli bir zamanda, sıra bekleyen Intent’i çalıştırır fakat cihaz uyku modunda ise cihazı uyandırmaz.
  • ELAPSED_REALTIME_WAKEUP : Geçen zamana göre Intent’i çalıştırmak için cihazı uyandırır.

( Aşağıdaki koda baktığımızda 30 dakika içinde alarm devreye girer ve her 30 dakika da setInexactRepeating komutu sayesinde yeniden tetiklenir. )

  • ELAPSED_REALTIME : Geçen zamana göre Intent’i çalıştırır fakat cihaz uyku modunda ise cihazı uyandırmaz.

Şimdi RTC_WAKEUP türüne göre küçük bir örnek yapmaya başlayalım; öncelikle android projemizde uyarı yayınını alabilmemiz için BroadcastReceiver kullanıyoruz. Aşağıdaki sınıfımıza baktığımızda alarm tetiklendiğinde onReceive methodunda kullanıcıya Toast mesajını gösteriyoruz ve cihazda default olarak seçili olan alarm müziği ne ise onu çalıyoruz.

AlarmReceiver.java

MainActivity sınıfımız ise aşağıdadır. Kaynak kodları indirip çalıştırdığınızda açılan sayfada butona tıklıyoruz ve karşımızda pop up içinde saat dilimi çıkıyor ve alarmın saat kaçta çalmasını gerektiğini belirliyoruz.

MainActivity.java

Son olarak AndroidManifest.xml dosyamızda yukarıda oluşturduğumuz receiver sınıfını tanımlıyoruz.         ( not: bu tanımlamayı yapmazsanız BroadcastReceiver hiç bir zaman devreye girmeyecektir ve alarm olayı tetiklenmeyecektir. )

AndroidManifest.xml

 

İşte Android AlarmManager Kullanımı bu kadar kolay , temel olarak önemli noktalara değinmeye çalıştım umarım faydalı olur herkese.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız mobil uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir dahaki dersimizde görüşmek dileğiyle..

Yazar Hakkında

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014) Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)
  • Atakan Ulusoy

    Hocam 2 buton 2 textview’im var.. butonlara basarak 2 farklı timer’ı çalıştıramıyorum. Buton1 basıyorum timer1 çalışıyor ve textview1de saniye saymaya başlıyor. fakat buton2ye basınca 2.timeri çalıştırmak istediğimde olmuyor.
    2.textview’e timer o an kaçtaysa oradan başlıyor saymaya oysa hangi butona ne zaman basarsam sıfırdan başlaması gerekiyor timer’ların ama olmuyor.
    2 adet timer’ı nasıl yöneteceğimi öğretirmisiniz.

  • Erdinç Çağlıyan

    RTC_WAKEUP metodu ile kullandığımızda telefon kapanıp açılsa dahi onReceive metodu çalışır mı?

  • Androd Develop

    MinSDK sorunu var.25 api istiyior minimum..Bunu nasıl düzeltebilirim

    • Bunun bu konuyla alakası yok. Büyük ihtimal Gradle’n güncellenmiş. Bu proje eski kalıyor. build.gradle dosyasında minSdk versiyonunu en az 25.0.2 yapmalısın.

      • Androd Develop

        yenı bir proje bulmam lazım örnek olarak..Var mı acaba bu konuyla da alakası ornek proje üzerinden yapacağım için