我是Android开发人员的初学者,我试图弄清楚如何下载多个文件。我看过一个简短的YouTube教程,该教程下载了一个PDF文件,但它是在主线程中完成的。我还想解决这段代码中的一些问题,但现在,我想知道如何将public class MainActivity extends AppCompatActivity {
Button btn;
DownloadManager downloadManager;
private String exampleURL = "https://doc.lagout.org/programmation/Actionscript%20-%20Flash%20-%20Flex%20-%20Air/Flash%20Development%20for%20Android%20Cookbook%20-%20Labrecque%20-%20Packt%20%282011%29/Flash%20Development%20for%20Android%20Cookbook%20-%20Labrecque%20-%20Packt%20%282011%29.pdf";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.download_btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(exampleURL);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
Long reference = downloadManager.enqueue(request);
}
});
}
}
合并到我的代码中,以便在后台下载PDF文件。
这是我的代码:
{{1}}
我知道有人会问“长引用”在这里做什么,因为它从未使用过。 Tbh idk也是如此,这个人既没有解释也没有在任何地方使用它,但是当我从代码中删除它时,下载似乎无法正常工作。
此代码的另一个问题是,与从chrome等应用程序进行传统下载不同,您不会收到任何吐司消息,告诉您下载已开始,您需要向下拖动小部件以查看是否正在进行下载。换句话说,其下方的屏幕上没有任何下载指示。
答案 0 :(得分:2)
您正在尝试解决一个不存在的问题。
将下载请求放入AsyncTask没有意义,因为DownloadManager已经为您异步下载。