делаю стробоскоп по API 21 и выше.Стробоскоп работает нормально, но при выключении выдает следующую ошибку:
android.app.IntentReceiverLeaked: Service
co.onlini.piuAlarm.domain.service.AlarmService has leaked IntentReceiver
android.hardware.camera2.CameraManager$1@261b1d that was originally registered
here. Are you missing a call to unregisterReceiver()?
Моя реализация строба:
class StrobeRunner(var cameraManager: CameraManager, var on: Boolean, var id: String) : Runnable {
var isOnOff = false
fun stop(){
on = false
run()
}
override fun run() {
while (on) {
cameraManager.setTorchMode(id, true)
Thread.sleep(500.toLong())
cameraManager.setTorchMode(id, false)
Thread.sleep(500.toLong())
}
}
}
Не могу понять как и отписаться в unregisterReceiver ()?
Или, может, кто-то знает, где смотреть реализацию строба для Api 21 +?
Я пробовал , это и , это и другие вариантыдля предыдущего API.Не знаю почему, но если попытаться включить флеш по этому принципу в другом потоке, он не включается, но без проблем в mainThread.