[解決済み] 実行中のAsyncTaskをキャンセルする理想的な方法
2022-10-19 18:40:17
質問
リモートでの音声ファイルの取得と再生操作をバックグラウンドスレッドで
AsyncTask
. A
Cancellable
フェッチオペレーションが実行されている間、プログレスバーが表示されます。
をキャンセル/中止したいのですが。
AsyncTask
を実行したいのですが、ユーザが操作をキャンセル(拒否)した場合、キャンセル/中止したいです。このような場合、どのように対処するのが理想的でしょうか?
どのように解決するのですか?
今、発見したのですが
AlertDialogs
's
boolean cancel(...);
どこでも使っているのですが、実は何もしないのです。素晴らしい。
というわけで...
public class MyTask extends AsyncTask<Void, Void, Void> {
private volatile boolean running = true;
private final ProgressDialog progressDialog;
public MyTask(Context ctx) {
progressDialog = gimmeOne(ctx);
progressDialog.setCancelable(true);
progressDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// actually could set running = false; right here, but I'll
// stick to contract.
cancel(true);
}
});
}
@Override
protected void onPreExecute() {
progressDialog.show();
}
@Override
protected void onCancelled() {
running = false;
}
@Override
protected Void doInBackground(Void... params) {
while (running) {
// does the hard work
}
return null;
}
// ...
}
関連
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] APKファイルからソースコードを取得する方法はありますか?
-
[解決済み] AsyncTaskのAndroidサンプル
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] Android: xml リソースからの整数値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信