Android 如何在后台下载沉重的东西?

Android 如何在后台下载沉重的东西?,android,background,Android,Background,我正在用Android做一个应用,我想知道 如何在后台下载沉重的东西 谢谢;) 这里有三种方法: 您可以创建一个服务,我建议您使用。IntentService自动跨越一个新线程,通过intent,您将URL作为字符串传递,并让服务使用流下载 使用类别(仅姜饼和较新版本) 姜饼带来了一个新功能,DownloadManager,它允许您轻松下载文件,并将处理线程、流等的艰苦工作委托给系统 String url = "url"; DownloadManager.Request request

我正在用Android做一个应用,我想知道

如何在后台下载沉重的东西


谢谢;)

这里有三种方法:

  • 您可以创建一个服务,我建议您使用。IntentService自动跨越一个新线程,通过intent,您将URL作为字符串传递,并让服务使用流下载

  • 使用类别(仅姜饼和较新版本)

  • 姜饼带来了一个新功能,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);
    
  • 或者在这里使用截击或改装2.0

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

    什么是重的东西?您是否尝试过使用
    AsyncTask
    ?像
    翻新
    /
    截击
    /
    OkHttp
    这样的库怎么样?不明白,为什么这个问题会被否决?怎么了?