2016-09-17 2 views
1

Я разрабатываю приложение, где мне нужно загрузить 200-300 мб-файл из Интернета. Сегодня я заметил странное поведение.Загружает файлы на Android, если приложение находится в фоновом режиме без зарядного устройства?

У меня всегда есть телефон, подключенный к ПК с помощью кабеля с мониторами Android, работающими в IntelliJ. Everyhing работал хорошо, файлы загружались, даже когда я нажимал кнопку «домой» в середине процесса, и я всегда получал уведомление о том, что загрузка завершена, - и это было действительно завершено.

Сегодня я отсоединил свой телефон от компьютера и кабеля и открыл приложение. Процесс загрузки начинается, но когда я нажимаю «home», и приложение переходит на задний план, оно не заканчивается, оно даже не будет продолжено. Он замораживает сетевой поток или что-то связанное с ним.

Я читал некоторые, и я помню, что некоторые популярные приложения, например, например, игра «Hearthstone», имели ту же проблему. Если вы заходите в меню, загрузка останавливается.

Я понял, что это вызвано зарядным устройством. Если телефон заряжается, когда файлы загружаются, все в порядке.

И мой вопрос.

Is there any Android permission that will allow me to do this? 

Я слышал, что он может быть изменен на настройки аппарата, но это плохое решение.

Is there any possibility to download files in background, without a charger and without user's interaction with the settings? 

Я также добавить, что я использую LibGDX двигатель, но это не имеет значения, я могу использовать все возможности андроида.

+0

Вам необходимо удержать 'WakeLock' и, возможно,' WifiLock' (если вы загружаете Wi-Fi и хотите попытаться сохранить WiFi до завершения загрузки). – CommonsWare

+0

Это не зарядное устройство. Скорее измените подход к обработке этой загрузки, используя фоновый поток или службу. – t0mm13b

ответ

0

я обнаружил, что есть два аспекта, которые могут ограничить сеть:

  • Ограничение данных в фоновом режиме - вариант, который вы можете установить на каждое приложение в настройках по использованию данных
  • Экономичный вариант, который автоматически делает лимит на сети и многое другое.

Дополнительно: если устройство подключено к зарядному устройству, энергосбережение отключено по умолчанию - вот почему оно работает.

+0

Каково было ваше решение в конце? –

+0

Пожалуйста, не включайте такие фразы, как «через 4 часа» или «.... дождитесь его .....». Это не форум, где вы должны преуспеть в развлекательной истории, а скорее с краткими описаниями решений. –

+0

Я решил это, показывая диалог, в котором пользователь может выбрать, хочет ли он отключить режим энергосбережения или нет. –

Смежные вопросы