2013-08-22 2 views
1

Мое приложение пробуждает телефон в режиме ожидания и включает экран (SCREEN_BRIGHT_WAKE_LOCK). Я не могу использовать подход WindowManager-flags, поскольку мое приложение уже может работать в фоновом режиме.WakeLock.release() отключает экран, даже если пользователь взаимодействует с приложением.

Проблема заключается в том, что, когда пользователь отклоняет мое приложение и освобождается WakeLock, экран немедленно отключается, даже если пользователь взаимодействует с приложением (или на рабочем столе, который на короткое время отображается при закрытии приложения) ,

С использованием ON_AFTER_RELEASE -flag help?

+0

Экран был выключен, приложение просыпается по телефону, пользователь работает с вашим приложением, экран переходит в исходное состояние. Разве это не последовательное поведение? Почему это плохо? –

+0

Я думаю, что это предполагаемое поведение. В документации даже упоминается следующее: «Экран может отключиться вскоре после того, как вы отпустите блокировку слежения, или это может быть не так, если есть другие блокировки слежения». –

+0

У меня такая же ситуация, как у Ника. Поведение НЕ является тем, что ожидает пользователь. Пользователи НИКОГДА не ожидают, что их экран станет полностью черным при выходе из приложения или активности. Если у них есть тайм-аут экрана, это должно быть выполнено ОС. Android НЕ ЧИТАЕТ это, когда выпущен wakelock. Это недостаток в их дизайне. – AndroidDev

ответ

1

Да, вы хотите использовать флаг ON_AFTER_RELEASE.

Когда этот замок блокировки освобожден, вытащите таймер активности пользователя, чтобы экран оставался на некоторое время.

+0

Спасибо, это действительно исправить! – Nick

+0

Это не будет работать, если вы заблокируете экран сразу после прекращения действия. – AndroidDev

+0

Хмм, я протестировал ответ Geobits, и он отлично работает на моем устройстве, но некоторые из моих пользователей все еще сообщают, что их экран отключается, когда я выпускаю wakelock ... известно, что он не работает последовательно на устройствах? – Nick