2011-08-02 70 views
1

我有兩個AsyncTasks作爲我的Activity中的內部類。在doInBackground中返回一個ArrayList,並在postExecute上爲其分配ListAdapter。另一個AsyncTask返回StringArray並設置一些TextViewsAsyncTask保存來自doInBackground的變量

在旋轉一切都消失了,旋轉的佈局也改變了。

我想訪問doInBackground的結果 - 方法。如果我有權訪問,我可以簡單地將變量保存在onSaveInstanceState中,然後手動重新分配這些值。

+0

你有沒有考慮分離'AsyncTask'管理成'Service',並從'Activity'只是談論到'Service'? – blueadept

+0

根本不是。我沒有看過服務,我寧願留在我的工作代碼和修復它,而不是改變整個設置 – Diemex

回答

3

您可以訪問onPostExecutedoInBackground結果。

類簡單地更改爲:

public class YourTask extends AsyncTask<Void, Void, ObjectYouWantToReturn> { 

    @Override 
    protected ObjectYouWantToReturn doInBackground(Beneficiary... params) {   
     ObjectYouWantToReturn obj = new ObjectYouWantToReturn(); 
     //... do your stuff 
     return obj; 
    } 

    @Override 
    protected void onPostExecute(ObjectYouWantToReturn result) { 
     //there you go, here you have the results from doInBackground 
    } 
} 
+1

這很簡單,我其實沒有想過它,謝謝 – Diemex

相關問題