Как заставить работать Android WakeLock? - PullRequest
45 голосов
/ 11 января 2010

Мой WakeLock не держит мое устройство в активном состоянии.

В OnCreate() У меня есть:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "My Tag");
mWakeLock.acquire();

тогда:

new CountDownTimer(1320000, 200) {

    public void onTick(long millisUntilFinished) {
        // I update a progress bar here.                                         
    }

    public void onFinish() {
        // I finish updating the progress bar.
        mWakeLock.release();
    }
}.start();

Экран выключается до окончания таймера, как я могу сделать экран видимым?

mWakeLock - это поле, ранее объявленное так:

private PowerManager.WakeLock mWakeLock;

Мое устройство использует Android 1.6. Я был бы очень признателен за любую помощь, чтобы решить эту проблему.

Ответы [ 13 ]

1 голос
/ 03 августа 2011

Попробуйте использовать флаг ACQUIRE_CAUSES_WAKEUP при создании блокировки пробуждения. Флаг ON_AFTER_RELEASE просто сбрасывает таймер активности, чтобы держать экран немного дольше.

http://developer.android.com/reference/android/os/PowerManager.html#ACQUIRE_CAUSES_WAKEUP

1 голос
/ 31 июля 2011

Убедитесь, что mWakeLock не случайно очищен, прежде чем вы будете готовы выпустить его. Если он завершен, блокировка снята. Это может произойти, например, если вы установите значение NULL и сборщик мусора будет запущен. Это также может произойти, если вы случайно установили локальную переменную с тем же именем вместо переменной уровня метода.

Я бы также рекомендовал проверить LogCat для записей, имеющих тег PowerManagerService или тег, который вы передаете newWakeLock.

0 голосов
/ 03 апреля 2018

Разрешение на добавление в AndroidManifest.xml:

<uses-permission android:name="android.permission.WAKE_LOCK" />

Затем добавьте код в my.xml:

android:keepScreenOn="true"

в этом случае никогда не выключит страницу! Вы можете прочитать больше это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...