DownloadManagerを使用して2Gbファイルのダウンロードを開始するので、保存する場所を選択するオプションをユーザに提供しますファイル:内部ストレージまたはSDカード。 また、私は、ダウンロードをキャンセルするオプションをユーザに与えます。ここに私のコードは次のとおりです。DownloadManagerがダウンロードを停止するのに、SDカードを使用する場合のみ
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId);
Cursor cursor = downloadManager.query(query);
try {
if (cursor.moveToFirst()) {
int status =cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
if (status == DownloadManager.STATUS_RUNNING ||
status == DownloadManager.STATUS_PENDING) {
downloadManager.remove(downloadId);
}
}
} finally {
cursor.close();
}
私の問題:内部ストレージにダウンロードする場合、.remove(downloadId)呼び出しは即座に動作し、ダウンロードが停止します。しかし、同じコードを使用してSDカード(Samsung Galaxy S7 Edge上)にダウンロードすると、ダウンロードを停止するのに3〜5分かかります。
遅延を削除する方法はありますか?
編集:Activity.getExternalFilesDirsによって返されるいくつかの経路の例として、():
/storage/emulated/.../ - これは/内部
/記憶/ 0123から4567であります.../- これはSDカードです
内部ストレージとSDカードにあると思われるパスの例を挙げることはできますか? – greenapps
は、パスを追加する質問を編集したばかりです – zrgiu
/storage/emulated/0/......は外部ストレージと呼ばれています。 getExternalStorageDirectory()で取得します。しかし、私は解決策を見ません。ごめんなさい。他のデバイスをテストしましたか? – greenapps