0
我需要在ListFragment中显示一些数据。我使用AsyncTask从互联网下载数据,然后使用Adapter更新数据。如何知道片段是否被重新创建
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = getActivity();
context = activity.getApplicationContext();
res = activity.getResources();
resFactory = createFactory(context);
dataFolder = resFactory.getDataFolder();
dataFile = resFactory.getDataFile();
ArrayList list = resFactory.getArrayList();
setListAdapter(resFactory.getAdapter(context, list));
linkToData = resFactory.getDataLink(res);
getData();
}
在getData
我开始AsyncTask
。
我想getData
在一个用户会话中只能执行一次。因此,如果碎片被分离并再次附着,我不想再次下载数据。但是,如果片段刚刚创建,我希望它下载数据。
对此的简单回答将从onCreate()
调用getData
,但后来我得到nullPointer,因为那时我没有AsyncTask
。所以我需要以某种方式知道片段是否已经被创建,或者它只是被分离,然后再次被连接。
英语不是我的母语。所以我很抱歉如果我的问题不是很理解。
将数据加载后,将其作为静态集合保存在某个其他类中,当您到达该片段时,首先检查数据是否存在或者不加载。 – Triode 2013-03-13 14:16:04
我的数据保存在文件(xml,json和jpeg缩略图)中。 如果我只是检查这个文件是否存在,那么当我的应用程序被启动的时候会更多,然后它不会更新数据,因为文件会存在。如果可能的话,我希望我的应用能够在每次启动时更新数据。所以这不是我的问题的解决方案。 – user1685095 2013-03-13 15:43:43
这不是我的问题的解决方案,因为它存储在用户会话之间的数据。因此,当应用程序第二次启动时,数据将存在于xml,json和jpeg文件中,并且不会被更新。 – user1685095 2013-03-13 16:22:15