Я разрабатываю приложение, где мне нужно загрузить 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 двигатель, но это не имеет значения, я могу использовать все возможности андроида.
Вам необходимо удержать 'WakeLock' и, возможно,' WifiLock' (если вы загружаете Wi-Fi и хотите попытаться сохранить WiFi до завершения загрузки). – CommonsWare
Это не зарядное устройство. Скорее измените подход к обработке этой загрузки, используя фоновый поток или службу. – t0mm13b