私は Asynctask を使用して、特にdoStuff()
グローバル データ構造を割り当てる時間のかかるメソッドを実行しています。デバッガーはそれdoStuff()
が呼び出されたことを確認しますが、Asynctask の最後に新しいビューが描画されると、グローバル データ構造へのアクセス中に null ポインター例外が発生します。コードは次のとおりです。
public class MyTask extends AsyncTask<Void, Void, Void> {
protected ProgressDialog dialog;
public MyTask (Context context) {
dialog = new ProgressDialog(context);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog.setMessage("Foo");
dialog.show();
}
@Override
protected Void doInBackground(Void... params) {
doStuff();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
dialog.dismiss();
}
}
を使用して、複数のアクティビティから Asynctask を実行しnew MyTask(this).execute();
ます。