【发布时间】:2020-04-05 10:01:12
【问题描述】:
正如标题所说,我有一个下载管理器,它可以工作,但只是有时。这很奇怪,我找不到模式。我有一个按钮,单击该按钮时,会向服务器发送请求,该服务器返回要下载的文件,然后有时会下载,有时则不会。我看不到任何模式,也没有从电话或服务器收到任何错误。
这对我的应用程序不利,因为我需要知道它是否已成功下载,因此我要么需要找出它有时无法正常工作的原因,要么在下载失败时找到运行函数的方法。这是我用来下载文件的代码:
GlobalVariables globalVariables = new GlobalVariables();
String url = globalVariables.getIPAddress() + "downloadsong/" + Integer.toString(songId) + "/";
SharedPreferences sharedPreferences = getSharedPreferences("StoredValues", MODE_PRIVATE);
String token = sharedPreferences.getString("token", "null");
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setTitle("Downloading");
request.setDescription("Downloading new titles");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, "" + songId + ".mp3");
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
request.addRequestHeader("Authorization", "Token " + token);
request.allowScanningByMediaScanner();
request.setAllowedOverMetered(true);
request.setAllowedOverRoaming(true);
long downloadReference = downloadManager.enqueue(request);
if (downloadReference != 0) {
Toast.makeText(getApplicationContext(), "download started", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(), "no download started", Toast.LENGTH_SHORT).show();
}
感谢任何帮助或见解。谢谢!
【问题讨论】:
标签: android download android-download-manager