次のスニペット:
public class ExternalClass {
private int num = 1;
public void backgroundTask() {
new HttpTask().execute();
}
public int getNum() {
return num;
}
private class HttpTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
//Do stuff...
}
@Override
protected void onPostExecute(String result) {
//Do stuff...
ExternalClass.this.num = 2;
}
}
アクティビティ内:
...
ExternalClass ec = new ExternalClass();
ec.backgroundTask();
int myNum = ec.getNum(); //NUM IS 1, NOT 2!!
私は何が間違っているのですか?すべてが正常に機能し、doInBackground()とonPostExecute()は正常に完了しますが、フィールド「num」は変更されません。「num=2」または「this.num=2」を試しました(正しくないことはわかっていますが...)。