0
我有一個AsyncTask在onPostExecute方法中返回一個值,我知道如何獲得返回值的唯一方法是使用該類的全局成員變量並將其設置爲onPostExecute方法中的值。替代使用全局變量來存儲AsyncTask結果
有沒有更好的方法或替代方法來做到這一點?我現在要做的只是爲此創建許多成員變量。
這裏我在做什麼現在
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
要與後這個值來做些什麼呢? –
將使用字符串添加到數組列表,這些將用於填充不同片段的列表視圖。所以基本上從SQLite數據庫獲取字符串並將這些字符串放入列表視圖中。所以我需要使用AsyncTask,因爲在UI線程 – Kevik
上做任何數據庫查詢都是不好的形式,你可以從後臺向數組列表添加值。 –