12
AndroidでのAsyncTaskとエラー処理
私は使用してから私のコードを変換していますHandlerしAsyncTask。後者は、非同期UIの結果とメインUIスレッドでの結果の処理で、その機能が優れています。私に不明確なのは、何かがうまくいかない場合の例外の処理方法ですAsyncTask#doInBackgroundです。 私が行う方法は、エラーハンドラーを用意し、それにメッセージを送信することです。それはうまくいきますが、それは「正しい」アプローチですか、それとももっと良い代替案がありますか? また、エラーハンドラーをアクティビティフィールドとして定義すると、UIスレッドで実行する必要があることも理解しています。ただし、(非常に予期できない)例外が発生し、トリガーされたコードがHandler#handleMessage間違ったスレッドで実行されていることがわかります。Activity#onCreate代わりにエラーハンドラを初期化する必要がありますか?に配置runOnUiThreadすることHandler#handleMessageは冗長に見えますが、非常に確実に実行されます。