這是我的一個活動的代碼片段,我想在android中實現AsyncTask
。請告訴我,如果我錯了,我可以趕上/ retrove從doInBackground
在onPostExecute
返回聲明,如果這是真的,我該怎麼辦呢?從AsyncTask的doInBackground方法中檢索return語句?
public class EvaluateTask extends AsyncTask{
ProgressDialog progress = new ProgressDialog(context);
@Override
protected void onPreExecute() {
progress.setMessage("Analysing");
progress.setIndeterminate(true);
progress.show();
}
@Override
protected Object doInBackground(Object[] params) {
Evaluate evaluate = new Evaluate(db); //Evaluate class object
return evaluate.getScore();
}
@Override
protected void onPostExecute(Object o) {
progress.dismiss();
Intent i = new Intent(googleAct.this,result.class);
startActivity(i);
//ERROR IN FOLLOWING LINE >>>>>>>
i.putExtra("score",finalScore);
}
}
這裏請注意,我要通過getScore()
方法,使用的AsyncTask(返回score
變量)在背景的執行score
變量從Evaluate
類轉移到result
活動。
什麼是您的商店變量的類的類型。還有什麼是你得到額外的錯誤。由於你沒有任何在任何地方聲明爲finalscore的變量,它會給出錯誤。嘗試使用你的對象o –
你需要閱讀更多關於'AsyncTask'的信息,當擴展類時缺少一些類型參數,但是doInbackground()中的返回值應該作爲參數傳遞給onPostexecute(),所以你可以檢索'onPostExecute(Object o)'中的參數'Object o'的值' – Yazan