Android Studio’da Her Milis İçin Alarm Ayarlama
Android uygulamalarında, belirli aralıklarla görevleri otomatikleştirmek için alarmlar kullanılır. Varsayılan olarak, Android alarmlar saniyelik hassasiyete sahiptir. Ancak, daha hassas zamanlama gerektiren uygulamalar için her milis için alarm ayarlama özelliği mevcuttur.
AlarmManager Sınıfı
Her milis için alarm ayarlama, AlarmManager
sınıfı kullanılarak gerçekleştirilir. AlarmManager
, sistem alarm hizmetine erişim sağlar ve alarmların planlanmasını ve yönetilmesini sağlar.
Alarm Türleri
AlarmManager
iki tür alarm destekler:
- RTC Alarmı: Gerçek zamanlı saat (RTC) ile senkronize edilir ve belirli bir tarih ve saatte tetiklenir.
- ElapsedRealtime Alarmı: Sistemin açılışından bu yana geçen süreye göre tetiklenir.
Her Milis İçin Alarm Ayarlama
Her milis için alarm ayarlamak için setExactAndAllowWhileIdle()
yöntemini kullanın:
java
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
long triggerAtMillis = SystemClock.elapsedRealtime() + 1000; // 1 saniye sonra tetikle
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtMillis, pendingIntent);
Bu kod, 1 saniye sonra tetiklenecek bir alarm ayarlar. setExactAndAllowWhileIdle()
yöntemi, alarmın cihaz boştayken bile tetiklenmesine izin verir.
Alarm Alıcısı
Alarm tetiklendiğinde, AlarmReceiver
sınıfı tarafından bir yayın alıcısı çağrılır. Yayın alıcısı, alarm tarafından gerçekleştirilmesi gereken görevi işler.
“`java
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Alarm tarafından gerçekleştirilecek görev
}
}
“`
Önemli Hususlar
- Her milis için alarm ayarlamak, cihazın pil ömrünü önemli ölçüde azaltabilir.
- Alarmlar, cihaz yeniden başlatıldığında iptal edilir.
- Alarmlar, cihazın güç tasarrufu modundayken tetiklenmeyebilir.
Faydalı Kaynaklar
- Android Geliştiriciler: AlarmManager
- Android Geliştiriciler: Alarm Alıcıları
- Android Geliştiriciler: Alarm Türleri