AsyncTask の doInBackground 内で IOException が発生したときに Toast を適切に表示する方法は?
質問する
1204 次
3 に答える
2
onPostExecute または onProgressUpdate のいずれかをオーバーライドして、UI スレッドにメッセージを表示できます。
onProgressDisplay を使用するには、AsyncTask を拡張するときに 2 番目の型を String として宣言します。
private class YourTask extends AsyncTask<ParamType, String, ReturnType> {
onProgressUpdate をオーバーライドします。
protected void onProgressUpdate(String... progress) {
String errMsg = progress[0];
Toast.makeText(getApplicationContext(), errMsg, Toast.LENGTH_SHORT).show();
}
次に、doInBackground で例外が発生したときに「progress」関数を呼び出すことができます。
protected ReturnType doInBackground(ParamType... params) {
try {
// do stuff
} catch (IOException e) {
publishProgress("My Error Msg goes here");
}
return result;
}
于 2011-07-13T22:38:10.710 に答える
1
ちょうどこのような:
Toast.makeText(Context context, int resId, int duration).show();
Context が必要なので、それを AsyncTask に渡すだけです。詳細情報.
于 2011-07-13T22:25:55.480 に答える