Intern
Android'de arka plan servisi ile arka plan servisi arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android 8.0 (API 26) ile birlikte, normal bir arka plan servisi ile kısıtlı (restricted) arka plan servisi arasındaki fark ortaya çıktı.
Normal arka plan servisi:
- Arka planda sınırsız süre çalışabilir.
- Sistem, kaynak yetersizliği durumunda durdurabilir, ancak
onStartCommand()içindeSTART_STICKYdöndürülürse yeniden başlatılabilir. - Kullanıcıya görünür bildirimler gerektirmez (ki bu UX açısından en iyi uygulama değildir).
- Pil ve CPU kaynaklarını önemli ölçüde tüketebilir.
Kısıtlı arka plan servisi (kısıtlamalar uygulanır):
- Görünür aktiviteler veya diğer "beyaz liste" (privilegeli koşullar) olmadan arka planda başlatılan servis, kaynak kullanımı üzerinde sınırlamalara tabidir.
- Temel kısıtlamalar şunları içerir:
- Arka planda çalışma sınırlaması: Uygulama arka plana geçtiğinde, sistem kısa süre içinde (genellikle birkaç dakika) servisi durdurabilir.
- Yeni arka plan servislerinin başlatılmasının engellenmesi: Arka plandaki uygulama
startService()kullanarak yeni arka plan servisleri başlatamaz. Bunun yerineJobSchedulerveyaWorkManagerkullanılmalıdır. - Broadkast mesajlarının alınmasında sınırlama: Manifestteki dolaylı broadcast mesajları (implicit broadcasts) dikkate alınmaz. Uygulama açıkça broadcast alıcılarını kaydetmeli veya olayları işlemek için
JobScheduler/WorkManagerkullanmalıdır.
- Bu kısıtlamaların amacı, pil ömrünü ve cihaz performansını artırmak, arka plan uygulamalarının kaynakları irrasyonel kullanmasını sınırlamaktır.
Bir servisin kısıtlamasız hale gelmesi (sistem gözünde aktif olması):
- Uygulama ön planda (kullanıcı onunla aktif olarak etkileşimde bulunuyor).
- Uygulama görünür bir servis başlatıyor (foreground service), bu da kullanıcının sürekli bildirim görmesini sağlar.
- Uygulama belirli görevleri yerine getirir (örneğin, broadcast mesajlarını işler,
JobSchedulergörevlerini yürütür), bu da onu geçici olarak tam irrasyonel arka plan durumundan çıkarır.
Ana fark: Android 8.0 ve üzeri sürümlerde, kullanıcı görünür aktiviteleri veya görünür servis olmadan çalışan arka plan servisi, sistem tarafından kaynaklara erişim ve uzun süre çalışma konusunda kısıtlanacaktır. Android 8.0 öncesi normal "arka plan servisi" bu tür katı kısıtlamalar olmadan çalışabiliyordu.