В настоящее время я использую DownloadManager для загрузки CSV-файла ~ 20 МБ во внешнее хранилище через мое приложение, для которого требуется разрешение Write_External. Я хотел бы иметь возможность загрузить этот CSV-файл во внутреннее хранилище моего приложения (поэтому мне не нужно требовать этого разрешения и гарантировать, что внутреннее хранилище всегда доступно), однако DownloadManager не может сделать это/получить доступ к хранилищу моего приложения.
Я знаю, что для этого можно использовать AsyncTask или службу загрузки, но мне нравится, как ведет себя DownloadManager в том смысле, что:
- загрузка запускается автоматически, когда пользователь восстанавливает подключение к Интернету после запуска в автономном режиме
- он автоматически обрабатывает приостановку, возобновление и повторную попытку загрузки
Могу ли я добиться этого с помощью AsyncTask, Service или даже сторонней библиотеки?
FileProvider
, хотя я еще не пробовал это. - person CommonsWare   schedule 05.09.2016AsyncTask
, так как загрузка может занять некоторое время.IntentService
будет хорошим выбором, пока вы активно скачиваете. Однако я не уверен, есть ли какие-либо клиентские библиотеки HTTP, которые упрощают паузу/возобновление/повторную попытку. Управление подключением, вероятно, лучше всего осуществляется черезJobScheduler
. - person CommonsWare   schedule 05.09.2016