1. ホーム
  2. android

[解決済み] AndroidにおけるAsyncTaskとエラーハンドリング

2022-05-03 21:59:18

質問

を使用していたコードを変換しています。 Handler から AsyncTask . 後者は、メインUIスレッドでの非同期更新と結果の処理という点で素晴らしいものです。 私にとって不明なのは、もし AsyncTask#doInBackground .

私がやっている方法は、エラーハンドラを持ち、そこにメッセージを送ることです。うまくいくのですが、これは正しい方法なのでしょうか、それとももっと良い方法があるのでしょうか?

また、エラーハンドラをActivityフィールドとして定義すると、UIスレッドで実行されるはずだと理解しています。 しかし、時々(非常に予測不可能)、私は、コードが Handler#handleMessage は間違ったスレッドで実行されています。エラーハンドラの初期化は Activity#onCreate ということでしょうか?配置する runOnUiThreadHandler#handleMessage は冗長に見えますが、非常に確実に実行されます。

解決方法は?

<ブロッククオート

それはうまくいくが、それは "正しい"。 アプローチなのでしょうか? 代替案はありますか?

を保持しています。 Throwable または Exception の中に AsyncTask のインスタンスを作成し、そのインスタンスに対して onPostExecute() そのため、私のエラー処理では、画面上にダイアログを表示するオプションがあります。