问题描述: 安卓下载管理器在使用过程中出现延迟且经常失败的情况。
解决方法:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo == null || !activeNetworkInfo.isConnected()) {
// 网络未连接,做相应处理
}
DownloadManager.Request request = new DownloadManager.Request(Uri.parse("下载链接"));
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "文件名");
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId); // downloadId是下载任务的唯一标识
Cursor cursor = downloadManager.query(query);
if (cursor.moveToFirst()) {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
if (status == DownloadManager.STATUS_FAILED) {
// 下载失败,做相应处理
}
}
File downloadDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if (!downloadDir.exists()) {
downloadDir.mkdirs();
}
StatFs statFs = new StatFs(downloadDir.getPath());
long availableBytes = statFs.getAvailableBytes();
if (availableBytes < requiredSize) {
// 存储空间不足,做相应处理
}
请根据实际情况选择合适的解决方法,并根据需要进行代码修改和适配。
上一篇:安卓下载管理器响应消息