Android: фоновый поток и экран в режиме ожидания, работает в эмуляторе, а не в устройстве

#android #android-emulator #background-process

#Android #android-эмулятор #фоновый процесс

Вопрос:

В приложении у меня есть фоновый поток, который загружает данные, иногда количество записей не очень велико. Мы показываем индикатор выполнения, чтобы показать данные

Предположим, я загружаю 1000 записей, что занимает от 1 до 5 минут в зависимости от сети. Экран становится черным во время процесса загрузки, и он даже не уведомляет, произошла ли какая-либо ошибка. Чтобы решить эту проблему, я применил этот код

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  

Что происходит в эмуляторе: я установил время ожидания экрана на 30 секунд, а затем начал загрузку данных. В настоящее время моя сеть работает медленно, и загрузка продолжается в течение последних 30 минут, но экран не погас. Я все еще вижу все на экране.

Что происходит в устройстве: [Протестировано в Samsung i5700]: Время ожидания экрана установлено равным 30 секундам. Тот же код не выполнялся так, как он выполнялся в эмуляторе. Через 30 секунд экран становится черным, и устройство заблокировано.

Я сделал что-то не так, что не позволяет коду запускаться на устройстве, как ожидалось? Или есть какая-либо другая вещь, которую необходимо обработать явно, если это возможно?

Комментарии:

1. В вашем эмуляторе установлен флажок «Оставаться в режиме ожидания» (настройка -> Приложения -> Разработка).

Ответ №1:

Вы уверены, что экран эмулятора не исчезает из-за вашего кода? Несколько дней назад я обнаружил, что эмулятор не блокирует экран, если «устройство подключено к сети переменного тока».

Попробуйте отключить подключение к сети переменного тока через adb (подключитесь через telnet и введите «отключить питание от сети переменного тока»).

Комментарии:

1. Ну, это может быть причиной, по которой этот код в устройстве не работает.. есть ли у вас какое-либо решение, чтобы заставить это работать, пока устройство не подключено к сети переменного тока??

2. Я тоже только что попробовал. Время отображения истекло из 15 секунд … подождал минуту, ничего не произошло…

3. Означает, что ваш экран не исчезал, пока ваше устройство или эмулятор не подключены?