Продолжить загрузку в Android даже после блокировки устройства

Как продолжить загрузку, даже если устройство заблокировано (нажата кнопка питания). Я попытался установить приложение из магазина игр, и во время его загрузки я заблокировал устройство, но оно по-прежнему продолжает загружаться без каких-либо перерывов и отображается на экране блокировки, как показано на снимке экрана ниже. Как мы достигаем этого программно?

введите здесь описание изображения


person Ganga    schedule 02.06.2016    source источник
comment
используйте фоновые потоки, проверьте stackoverflow.com/a/7635918/5108318   -  person pzmarzly    schedule 02.06.2016
comment
У меня есть поток, который загружает файл через http внутри веб-просмотра. Проблема в том, что загрузка прерывается, если устройство заблокировано. И страница возвращает 401, когда устройство разблокировано. Я пробовал такие методы, как keepScreenon и установку блокировки пробуждения с помощью PARTIAL_WAKE_LOCK. Но они не дают ожидаемого результата. Я наблюдал, что происходит при установке плеймаркета, и было интересно, процесс загрузки виден даже на экране блокировки. Поэтому я хотел бы узнать, что реализовано в этом примере.   -  person Ganga    schedule 02.06.2016
comment
Я думаю, что webView может переходить в спящий режим, когда экран выключен. Поскольку вы не можете заставить экран оставаться включенным, лучшим вариантом будет написать собственный код для загрузки.   -  person pzmarzly    schedule 02.06.2016
comment
попробуйте использовать DownloadManager — developer.android.com/reference/android/app/   -  person pzmarzly    schedule 02.06.2016
comment
Да, код для загрузки написан, в веб-просмотре просто есть кнопка, которая инициирует загрузку по щелчку. Можно оставить экран включенным, не переходя в спящий режим, с помощью кнопок с keepScreenOn по true, но в моем случае они бесполезны. Это бесполезно, когда мы явно блокируем устройство.   -  person Ganga    schedule 02.06.2016


Ответы (1)


Если вы хотите, чтобы задача продолжала выполняться, даже когда ваша активность не активна, вам нужно использовать файл Service. https://developer.android.com/guide/components/services.html . Play Store, вероятно, использует службу, чтобы загрузка выполнялась в фоновом режиме, и уведомление, чтобы показать статус на экране блокировки. https://developer.android.com/guide/topics/ui/notifiers/notifications.html

person chessdork    schedule 02.06.2016
comment
Спасибо .. Извините, я забыл упомянуть, что поток уже работает внутри службы. - person Ganga; 02.06.2016