[解決済み] Android: AsyncTaskのonPreExecute()にパラメータを渡すにはどうしたらいいですか?
2022-08-29 18:49:28
質問
私は
AsyncTask
をインナークラスとして実装したロード操作のために使用しています。
で
onPreExecute()
ロードダイアログを表示し、それを再び
onPostExecute()
. しかし、いくつかの読み込み操作については、それが非常に速く終了することが事前に分かっているので、読み込みダイアログを表示したくありません。
に渡すことができるブール値のパラメータでこれを示したいと思いました。
onPreExecute()
に渡せるようにしたかったのですが、どうやら何らかの理由で
onPreExecute()
はパラメータを取らないようです。
明らかな回避策は、おそらく私のAsyncTaskまたは外側のクラスでメンバーフィールドを作成し、すべてのロード操作の前に設定する必要がありますが、それは非常にエレガントではないようです。これを行うためのより良い方法はありますか?
どのように解決するのですか?
コンストラクタをオーバーライドすればよいでしょう。以下のような感じです。
private class MyAsyncTask extends AsyncTask<Void, Void, Void> {
public MyAsyncTask(boolean showLoading) {
super();
// do stuff
}
// doInBackground() et al.
}
そして、タスクを呼び出すときに、次のようにします。
new MyAsyncTask(true).execute(maybe_other_params);
編集してください。 というのは、メンバ変数を作るよりも、タスクの呼び出しが単純になるので便利だからです。上のコードと比較してみてください。
MyAsyncTask task = new MyAsyncTask();
task.showLoading = false;
task.execute();
関連
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] setTimeout()コールバックにパラメータを渡すにはどうすればよいですか?
-
[解決済み] ViewPagerのアイテムを強制的に再インスタンス化する方法 [重複].
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AsyncTask<arg1, arg2, arg3>に渡される引数は何ですか?
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] Android ConstraintLayout - あるビューを別のビューの上に配置する
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信