Android, активен ли Wake Lock, когда в дыре приложения? - PullRequest
1 голос
/ 13 сентября 2011

У меня есть некоторые действия в моем приложении.В основной деятельности я определил блокировку wake:

PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");

и выпустил ее методом onPause().У меня вопрос, активен ли он во всем приложении?или мне нужно копировать / вставлять его в каждое занятие?

Спасибо

1 Ответ

5 голосов
/ 13 сентября 2011

Пока WakeLock получен, удерживается длительная блокировка. С этим связано время жизни вашего объекта WakeLock. И если WakeLock больше не используется, и он используется GC, но при этом все еще имеет блокировку, он освобождается во время сборки мусора (в методе finalize ()).

Таким образом, ваша активная блокировка активна между acqu () и release (). Вы должны убедиться, что ваш код вызывает эти функции, когда это необходимо из требуемых действий.

Если вы хотите использовать WakeLock глобально в своем приложении, расширьте android.app.Application, укажите его в манифесте и управляйте блокировкой пробуждения на уровне приложения.

...