Middle
Android'de arka plan servisi (ön plan servisi) nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Ön plandaki servis (foreground service), Android'de yüksek önceliğe sahip ve kullanıcı tarafından görülebilen bir servis türüdür. Kullanıcı için fark edilir görevleri yerine getirir ve pil tasarrufu veya bellek sıkıntısı durumlarında kesintiye uğramaması gerekir.
Ana özellikler:
- Bildirim alanında sürekli bir bildirim gösterir. Kullanıcı, servisin çalıştığını görebilmeli ve onunla etkileşime geçebilir.
- Sistem, yüksek önceliği nedeniyle normal arka plan servisi veya thread'e kıyasla ön plandaki servisi sonlandırma olasılığı daha düşüktür.
- Özel izin
FOREGROUND_SERVICEgerektirir. - Müzik çalma, konum takibi, gerçek zamanlı veri senkronizasyonu gibi görevler için kullanılır.
Yaşam döngüsü:
startForegroundService()ile başlatılır.- 5 saniye içinde
startForeground(notificationId, notification)çağrısı yapılmalı, aksi takdirde sistem servisi durdurabilir veForegroundServiceDidNotStartInTimeExceptionhatası atabilir. stopSelf()veya başka bir bileşendenstopService()ile veya kullanıcı tarafından bildirim aracılığıyla durdurulur. Durdurulduğunda, bildirim kaldırmak içinstopForeground(bool removeNotification)çağrılmalıdır.
Başlangıç örneği:
// İzin alınması
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.FOREGROUND_SERVICE),
REQUEST_CODE_FOREGROUND_SERVICE
)
// İzin alındıktan sonra veya zaten izin varsa
val serviceIntent = Intent(this, MyForegroundService::class.java)
ContextCompat.startForegroundService(this, serviceIntent)
Servis içinde:
// MyForegroundService.kt
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val notification: Notification = createNotification() // Bildirimi oluşturma metodu
startForeground(NOTIFICATION_ID, notification)
// Burada servisin görevi başlar
return START_STICKY // veya uygun başka bayrak
}
override fun onDestroy() {
stopForeground(true) // Durdururken bildirimi kaldır
// Kaynak temizliği
super.onDestroy()
}