我正在嘗試創建一個異步任務來處理一大堆數據庫條目,然後讓用戶知道該條目是使用附加到自身的textView製作的。我知道我無法觸及doInBackground
中的視圖,但我無法使用任何其他方法工作。任何人都可以向我解釋如何讓我的代碼在AsyncTask中工作嗎?無法讓AsyncTask正常工作
代碼:
private class DBADDITION extends AsyncTask<Object, Void, Object> {
@Override
protected String doInBackground(Object... params) {
DBAdapter my_database = new DBAdapter(getApplicationContext());
logout.append("\n" + "Start" + " ");
my_database.open();
String temp = input.getText().toString();
int i = Integer.parseInt(temp);
for (int j = 1; j <= i; j++) {
db.createEntry("example", 10 + j);
logout.setText("\n" + j + logout.getText());
}
db.close();
return "it worked";
}
protected void onProgressUpdate(Integer... progress) {
}
}
您應該只返回 「它的工作」在所有工作實際完成時在'onPostExecute'方法中。 – hwrdprkns 2013-05-07 07:09:16
更新ui應該在ui線程上使用runonuithread或處理程序完成或更新ui onPostExecute() – Raghunandan 2013-05-07 07:10:28
當我嘗試返回「void」時,它不允許我這樣做。 – EGHDK 2013-05-07 07:11:21