2

SD カードからファイルを読み込み、Gridview に表示します。

アイテムを選択してアイテムGridviewを取得するpositionと。

ダウンロードボタンをクリックすると、アイテムがダウンロードされます。

downloadManagerを使用しているときにアイテムのダウンロードを停止する方法

コードは次のようなダウンロード ボタンです。

FileNode file = mFileList.get(temp_position) ;//Get the item I have select from Gridview

                                final String filename = file.mName.substring(file.mName.lastIndexOf("/") + 1) ;
                                final String urlString = "http://" + mIp + file.mName ;

                                String serviceString = Context.DOWNLOAD_SERVICE ;
                                DownloadManager downloadManager ;
                                downloadManager = (DownloadManager) getActivity().getSystemService(
                                        serviceString) ;

                                Uri uri = Uri.parse(urlString) ;
                                DownloadManager.Request request = new Request(uri) ;
                                request.setTitle(filename) ;
                                request.setDescription(urlString) ;

                                String ext = filename.substring(filename.lastIndexOf(".") + 1)
                                        .toLowerCase(Locale.US) ;
                                String mimeType = MimeTypeMap.getSingleton()
                                        .getMimeTypeFromExtension(ext) ;

                                Log.i("MIME", ext + "  ==>  " + mimeType) ;

                                if (mimeType != null) {
                                    request.setMimeType(mimeType) ;
                                }
                                request.allowScanningByMediaScanner() ;

                                request.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) ;

                                request.setDestinationInExternalPublicDir(MainActivity.sAppName, filename) ;

                                downloadManager.enqueue(request) ;

ファイルのダウンロード中にアイテムのダウンロードを停止する方法は?

4

2 に答える 2

10

DownloadManager#enqueue実行中のダウンロードをlong表す を返します。idそれを変数に保存しlongます。

次に、ダウンロードをキャンセルする必要がある場合はDownloadManager#remove()、その長さを渡して呼び出します。

例えば

//start a download
long id = downloadManager.enqueue(request);

//stop a download
downloadManager.remove(id);
于 2014-01-05T03:32:21.183 に答える