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