如何知道片段是否已重新创建

时间:2013-03-13 14:11:26

标签: android

我需要在ListFragment中显示一些数据。我正在使用AsyncTask从Internet下载数据,然后使用适配器更新数据。

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只能在一个用户会话中执行一次。因此,如果片段已分离然后再次附加,我不想再次下载数据。但是如果刚刚创建了片段,我希望它能够下载数据。

对此的简单回答是从getData调用onCreate(),但后来我得到nullPointer,因为那时我没有AsyncTask。因此,我需要以某种方式知道片段是刚刚创建的还是刚刚分离然后再次附加。

英语不是我的母语。所以我很抱歉如果我的问题不太明白。

1 个答案:

答案 0 :(得分:1)

package com.example.gridview;

import android.os.Bundle;
import android.support.v4.app.Fragment;

/**
 * @author rajeshcp
 */
public class FrgamentX extends Fragment {

    private boolean mIsCreated;



    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }



    @Override
    public void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        if(!mIsCreated)
        {
                    mIsCreated = true;
            //load data
        }
    }
}

这也行。