React Native ile geliştirdiğim, cihaz ivmeölçer (accelerometer) verilerini anlık takip ederek sunucuya raporlayan bir projem var. Uygulamanın en kritik özelliği; kullanıcı uygulamayı kapatsa (swipe-away) bile arka planda sensör dinlemeye devam etmesi ve bildirim panelinde bu servisin asla kapanmayan (sticky) bir bildirimle kullanıcıya güven vermesi.
Şu ana kadar Expo Config Plugins kullanarak Native katmanda (Kotlin) bir Foreground Service yazdım. onTaskRemoved ve BOOT_COMPLETED gibi tetikleyicileri ekledim. Ancak gerçek cihaz testlerinde (özellikle Android 14 ve bazı OEM batarya katilleri olan Xiaomi/Samsung cihazlarda) şu iki sorunu aşamıyorum:
- Swipe-Away Sorunu: Uygulama "Son Uygulamalar" ekranından yukarı kaydırılarak kapatıldığında, Foreground Service bir süre sonra (bazen hemen, bazen 5 dk sonra) sistem tarafından öldürülüyor. START_STICKY dönmeme rağmen servis kendiliğinden tekrar ayağa kalkmıyor.
- Notification Persistence: Bildirim panelindeki bildirim bazen "kapatılabilir" hale geliyor veya servis ölünce kayboluyor. Kullanıcının bu bildirimi manuel olarak kaydırarak kapatmasını tamamen engellemek ve servisin yaşam döngüsüne %100 bağlamak istiyorum.
- PowerManager.isIgnoringBatteryOptimizations kontrolü ve izin yönlendirmesi.
- NotificationCompat.Builder içinde setOngoing(true) ve setSticky(true) kullanımı.
- Wakelock kullanarak işlemciyi uyanık tutmaya çalışmak.
Tecrübeli arkadaşların tavsiyelerine veya örnek bir repo/makale önerisine ihtiyacım var. Şimdiden teşekkürler!