私のアプリには、それぞれ約 40kb の 5 つの大きなテキスト ファイルがあります。これらのファイルは、Web サイトで毎週更新されます。サイトから5つのファイルをダウンロードするようにdownloadManagerを設定することができました。問題は、問題が発生するため、ファイルのダウンロード中にユーザーがアプリを使用できないようにすることです。ユーザーが「更新」ボタンをクリックすると、読み込みボックスが表示されるようにします。ファイルのダウンロードが完了すると、ボックスが消え、「更新されました」というトースト メッセージが表示されます。これは私が設定した方法です:
@SuppressLint("NewApi")
public void DownloadTxtFile(String url, String fileName) {
if (!new File(Environment.getExternalStorageDirectory()
+ "/folder").exists()) {
new File(Environment.getExternalStorageDirectory()
+ "/Dovahzul_Dictionary").mkdirs();
}
File file = new File(extStore.getAbsolutePath()
+ "/folder/" + fileName);
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(url));
request.setDescription("Downloading Text Files...");
request.setTitle("Updating")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir("/Dovahzul_Dictionary",
fileName);
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
if (file.exists()) {
file.delete();
} else {
}
manager.enqueue(request);
}
ところで、この方法に問題がある場合は、私にもお知らせください。前もって感謝します。