2

我在片段中有一個asynctask。每當我得到這個片段時,它會從頭開始加載所有數據,但對我來說這是浪費。因此,我希望它只加載一次。如何修復此問題?在片段中使用asynctask

回答

4

你可以把它放在onCreate或onActivityCreated方法中。

有關片段生命週期的更多信息:Fragments

+0

我認爲這個問題是在that.I或的onCreate放onActivityCreated執行的AsyncTask方法,其結果不會changed.It負載每再寄一次使用片段查看器。 – droidmachine 2012-02-20 18:56:18

+0

你可以嘗試包括setRetainInstance(true);在你的onActivityCreated方法中。這樣做會導致片段的onCreate()在每次配置更改時都不會被調用。 – Scott 2012-02-20 19:45:37

+0

每次還裝載:S – droidmachine 2012-02-20 21:01:19

0

在你的代碼中,你希望加載你的初始數據?你最初是否從父母活動中加載它?無論哪裏,這都是您需要實施AsyncTask並維護項目列表的地方。不在片段內。從那裏,你只需做你的片段如下:

public class Android extends Fragment{  
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     /** Grab your initial data **/ 
     setListAdapter(new ArrayAdapter<String>(context, layout, <your data>); 
    } 
} 
+0

從哪裏來?如何從父項目獲取數據? – topwik 2012-08-07 18:16:55