У меня вопрос о wakelock. В случаях, показанных ниже, освобождает ли релиз wakeelock для ОС Android (PARTIAL_WAKE_LOCK
, если вам нужно указать), чтобы предотвратить использование wakelock и потерять аккумулятор до выключения питания (не спящий режим).
Случай 1-a:
Приложение приобрело wakelock (без опции тайм-аута) в одном из своих потоков (пожалуйста, подумайте, что это разумно в этом случае), и он был разработан для выпуска wakelock, когда была завершена критическая задача. Приложение может быть убито диспетчером задач или пресловутым taskkiller, и приложение не имеет шансов позволить его потоку освободить wakelock. Что происходит с этим wakelock?
Случай 1-b:
(Если ответ на случай 1-a есть "Да, не волнуйтесь", пожалуйста, проигнорируйте этот случай.)
То же, что и в случае с 1-а, но приложением задано значение тайм-аута для wakelock, скажем, 3 секунды. Этот параметр тайм-аута остается в силе?
Случай 2-a:
Представьте себе, что есть служба, которая была запущена AlarmManager (через широковещательный приемник), и служба приобрела wakelock (без опции тайм-аута). Эта услуга предназначена для того, чтобы сделать минимум времени, достигнутого в wakelock. Но, к сожалению, Android OS выбрала эту службу для убийства из-за нехватки памяти. (Я не знаю, будет ли ОС не убивать службу при приобретении wakelock, но я думаю, OS не заботится. Но я надеюсь, что ОС выпустит wakelock позже.) Что происходит с этим wakelock?
Случай 2-b:
(Если ответ на случай 2-a есть "Да, не волнуйтесь", пожалуйста, проигнорируйте этот случай.)
То же, что и в случае 2-a, но сервис дал параметр тайм-аута для wakelock, скажем, 3 секунды. Этот параметр тайм-аута остается в силе?