私はこのアプリケーションを使用して、ビデオのダウンロードを可能にします。ダウンロード部分は動作していますが、ダウンロードが完了した直後に別の機能を実行する必要があります。現在、AsyncTaskを使用していますが、PostExecuteでトーストしようとすると、何も起こりません。私は、ダウンロードが完了した後、元のファイルを暗号化してから削除する別の関数を呼びたいと思います。ダウンロードマネージャAndroid:ダウンロード完了
そしてbtw、暗号化部分も同様に働いています。私に必要なのは、ダウンロードが完了したかどうかを知ることができるものだけです。
これは私がURLからファイルをダウンロードするコードです。しかし、私はダウンロードはAsyncTask
public void downloadTutorial() throws Exception {
myURL = "";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(myURL));
request.setTitle(injuryType + " Video");
request.setDescription("File is being downloaded...");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
String fileName = URLUtil.guessFileName(myURL, null, MimeTypeMap.getFileExtensionFromUrl(myURL));
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
DownloadManager manager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
//if the download is complete execute this
//new JSONTask().execute();
}
を実行するために完了しているかどうかを知る必要があり
AsyncTaskのコードは次のとおりです。
public class JSONTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
Encrypter.encrypt(injuryType);
} catch (IOException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Toast.makeText(getActivity(), "Download Done", Toast.LENGTH_SHORT).show();
}
}
私は、コードには問題はありません問題が何であるかを知っているが、よUCANはgetApplicationContext(代わりにgetActivity) –
を使用してみてくださいいけません。私はダウンロードが完了したかどうかを知る方法を知る必要があります。 – VouchMe