我正在使用Android进行应用,我想知道......
我如何在后台下载重物?
谢谢;)
答案 0 :(得分:2)
我认为最简单的方法是使用AsyncTask,它是Android SDK的一个组件,可帮助您在后台执行任务并在前台(或主线程)中显示结果。但我建议你阅读这篇documentation,这可能有助于更好地理解如何处理后台任务。
答案 1 :(得分:0)
这里有三种方式:
您可以创建服务,我建议您使用IntentService。 IntentService自动跨越一个新线程,通过您将URL作为String传递的意图,并使用流来下载服务。
使用DownloadManager课程(仅限GingerBread和更新版本)
GingerBread带来了一个新功能DownloadManager,它允许您轻松下载文件并将处理线程,流等的艰苦工作委派给系统。
String url = "url";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Some descrition");
request.setTitle("Some title");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "name-of-the-file.ext");
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);