我有一个 AsyncTask 在 onPostExecute 方法中返回一个值,我知道如何获取该返回值的唯一方法是使用该类的全局成员变量并在 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