Как сохранить WakeLock до тех пор, пока приложение открыто или работает?

58
7

Мне нужно сохранить SCREEN_DIM_WAKE_LOCK до тех пор, пока мое приложение работает. Перед тем, как кто-то читает мне лекции о хорошей или плохой практике, и как это может случиться с собственным управлением питанием устройства, это будет на специальном устройстве и выражает желание клиента.


Большинство мест, где я вижу это, говорят только об использовании WakeLock в течение ограниченного времени, пока вы что-то делаете. Я попытался получить блокировку в начале приложения, но он не работает.


Мои вопросы:

- Где я должен помещать его так, чтобы я мог сохранить блокировку на время моего приложения?

- Если блокировка выходит из сферы действия в методе, она перестает работать?

- Должен ли я освежать его или что-то в этом роде?


Как бы вы могли добиться чего-то подобного?

спросил(а) 2011-05-05T16:30:00+04:00 9 лет, 5 месяцев назад
1
Решение
91

Вы можете предоставить свою собственную реализацию Приложения для своего приложения и сохранить там свой Wakelock. Получите блокировку в методе onCreate() приложения, и вы получите ее до тех пор, пока ваше приложение будет запущено.


См. документацию о том, как переопределить ее - вам по существу просто нужно определить ее в вашем файле манифеста. Например:

<application android.name="com.example.MyApplication" ... >

http://developer.android.com/reference/android/app/Application.html

ответил(а) 2011-05-05T17:37:00+04:00 9 лет, 5 месяцев назад
58

Настройка android: keepScreenOn = "true" в макете должен делать то же самое.

ответил(а) 2011-05-05T16:36:00+04:00 9 лет, 5 месяцев назад
42

Посмотрите на userActivity(). Вы можете называть его периодическим для reset таймера активности пользователя (как если бы пользователь сделал что-то вроде касания экрана).


см. http://developer.android.com/reference/android/os/PowerManager.html#userActivity(long, boolean)

ответил(а) 2011-05-06T13:56:00+04:00 9 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема