我如何在后台下载重物?

时间:2016-04-18 03:01:28

标签: android background

我正在使用Android进行应用,我想知道......

我如何在后台下载重物?

谢谢;)

2 个答案:

答案 0 :(得分:2)

我认为最简单的方法是使用AsyncTask,它是Android SDK的一个组件,可帮助您在后台执行任务并在前台(或主线程)中显示结果。但我建议你阅读这篇documentation,这可能有助于更好地理解如何处理后台任务。

答案 1 :(得分:0)

这里有三种方式:

  1. 您可以创建服务,我建议您使用IntentService。 IntentService自动跨越一个新线程,通过您将URL作为String传递的意图,并使用流来下载服务。

  2. 使用DownloadManager课程(仅限GingerBread和更新版本)

  3. 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);
    
    1. 或者只是在这里使用Volley或Retrofit 2.0。