onPostExecute メソッドで値を返す AsyncTask があり、その戻り値を取得する方法を知っている唯一の方法は、クラスのグローバル メンバー変数を使用し、その値を onPostExecute メソッドで設定することです。
これを行うためのより良い方法または代替方法はありますか? 私が今やっていることは、この理由だけで多くのメンバー変数の作成を必要とします.
これが私が今していることです
public class MainClass extends Activity {
String takeInString = "";
new DoItAsyncTask().execute(97);
// nested inner class of AsyncTask inside of MainClass
public class DoItAsyncTask extends AsyncTask<Integer, Void, String>{
String tempString = "";
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
// assign value of global member variable takeInString
takeInString = result;
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
protected String doInBackground(Integer... params) {
Database dptr = new Database(MainClass.this);
dptr.openToRead();
tempString = dptr.getStringFromDatabase(params[0]);
dptr.close();
return tempString;
}
} // end DoItAsyncTask
} // end MainClass