我将尝试使用以下代码从URL下载图片:
我不知道如何在下载开始后取消它。
public static void writeToDisk(Context context, @NonNull String imageUrl, @NonNull String downloadSubfolder) {
Uri imageUri = Uri.parse(imageUrl);
String fileName = imageUri.getPath();
String downloadSubpath = downloadSubfolder + fileName;
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(imageUri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDescription(imageUrl);
request.allowScanningByMediaScanner();
request.setDestinationUri(getDownloadDestination(downloadSubpath));
downloadManager.enqueue(request);
}
我不知道如何在下载开始后取消它。
enqueue
方法,我认为错误就是从那里出现的。如果你真的需要这个,你可以通过以下两种方式解决:1.将一个Activity
传递给AsyncTask
的构造函数,然后你可以使用Activity.runOnUiThread
;2.你可以使用new Handler(Looper.getMainLooper).pose(Runnable...)
。 - user8690908