У меня похожая проблема. Я могу заставить экран оставаться включенным, но если я использую частичную блокировку после пробуждения и экран выключен, моя функция onFinish не вызывается, пока экран не будет включен.
Вы можете проверить свою блокировку от пробуждения с помощью mWakeLock.isHeld (), прежде всего, чтобы убедиться, что вы ее получаете. Самый простой способ - добавить это в код, установить для него точку останова в отладчике и затем проверить его.
В моем случае я получаю это, но частичная блокировка следа, похоже, ничего не делает. Вот мой рабочий код для затемнения экрана.
protected void setScreenLock(boolean on){
if(mWakeLock == null){
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK |
PowerManager.ON_AFTER_RELEASE, TAG);
}
if(on){
mWakeLock.acquire();
}else{
if(mWakeLock.isHeld()){
mWakeLock.release();
}
mWakeLock = null;
}
}
ДОПОЛНЕНИЕ:
Пользователи Droid Eris и DROID сообщают мне, что это НЕ работает на их устройствах, хотя на моем G1 работает нормально. На каком устройстве вы тестируете? Я думаю, что это может быть ошибка Android.