2015-06-05 3 views
0

У меня есть служба backgroud, которая приобретает «частичный замок блокировки» и запускает поток обработчика. Я знаю, что по некоторым причинам Android может убить эту службу и снова перезапустить ее. Мой вопрос: что происходит с моей нитью? будет ли он прекращен вызывать некоторые методы, жестоко уничтожен или он продолжит выполнение в обычном режиме? Что касается блокировки следа, будет ли она каким-то образом выпущена системой или нет?Служба Android, Thread и WakeLock

ответ

1

Будет ли остановлено вызов некоторых методов, жестоко уничтоженных или продолжения его выполнения?

Согласно моему эксперименту на маленькой ОЗУ Android-устройства, Service может быть убит системой Android при высоком давлении памяти. Система Android не запускает ваш Service для вызова метода onDestroy. Я думаю, система приостанавливает поток Service. Даже если Service вернется START_STICKY или START_REDELIVER_INTENT, но они не гарантируют, что ваш Service будет запущен заново.

Что касается блокировки следа, будет ли она каким-то образом выпущена системой или нет?

Система Android не гарантирует освобождение wakelock, если вы не позвоните startWakefulService(context, service). Он использует wakelock, пока работает ваш Service.

Смежные вопросы