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