Android丢失了ArrayList数据

Android丢失了ArrayList数据,android,arraylist,Android,Arraylist,我有一个存储某些图像路径的ArrayList: Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades; for(Criterio c : irregularidades.values()) { ArrayList<String> listFotos = c.getFotosList(); } Map unregularidades=criteriadapter.unreg

我有一个存储某些图像路径的ArrayList:

Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades;
for(Criterio c : irregularidades.values()) {
    ArrayList<String> listFotos = c.getFotosList();
}
Map unregularidades=criteriadapter.unregularidades;
对于(标准c:Unregularidades.values()){
ArrayList listFotos=c.getFotosList();
}
但是,如果应用程序通过电话锁或某个呼叫进入后台。当我试图保存数据时,收到一个空指针异常

有人能帮我吗

编辑

我将添加完整的代码,以便于理解

public class SaveFragment extends Fragment {

Map<String, String> detailsLoja = LojaDetailsActivity.detailsVistoria;

/** Called when the activity is first created. */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_sync_import, container, false);
    setHasOptionsMenu(true);
    saveData();

    return view;
}

@Override
public void onActivityCreated (Bundle savedInstanceState){
    super.onActivityCreated(savedInstanceState);
}

public void saveData() {

    IrregularidadesDbAdapter mDb;
    mDb = new IrregularidadesDbAdapter(getContext());

    mDb.open();

    int idVistoria = mDb.vistoriaInsert(detailsLoja.get("idBombeiro"), detailsLoja.get("idLoja"), detailsLoja.get("idArea"), changeDate(detailsLoja.get("vistoriaData")));

    Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades;
    for(Criterio c : irregularidades.values()) {
        int idCriterio = c.getId();
        int idEquipamento = c.getEquipamento();
        int idArea = c.getSubArea;
        ArrayList<String> listFotos = c.getFotosList();

            int idIrregularidade = mDb.insert(idVistoria, idCriterio, idEquipamento, idArea);

            for (int i = 0; i < listFotos.size(); i++) {
                mDb.fotosInsert(idIrregularidade, listFotos.get(i));
            }
    }

    mDb.close();

    reloadActivity();

}

// Reload MainActivity
public void reloadActivity() {
    Intent objIntent = new Intent(getContext(), MainActivity.class);

    NavDrawerFragment.mConfiguration = Config.configuration();
    NavDrawerFragment.mConfiguration =  NavDrawerFragment.mConfiguration.subList(0, 6);
    NavDrawerFragment.mConfiguration.add(0, new NavItem("Header", NavItem.TOP));

    startActivity(objIntent);
}

}
公共类SaveFragment扩展了Fragment{
Map detailsLoja=LojaDetailsActivity.detailsVistoria;
/**在首次创建活动时调用*/
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u sync\u导入,容器,false);
设置选项菜单(真);
saveData();
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
公共void saveData(){
不规则去适应mDb;
mDb=新的数据适配器(getContext());
mDb.open();
int idVistoria=mDb.vistorainsert(detailsLoja.get(“idBombeiro”)、detailsLoja.get(“idLoja”)、detailsLoja.get(“idrea”)、changeDate(detailsLoja.get(“vistoriaData”);
Map unregularidades=criteriadapter.unregularidades;
对于(标准c:Unregularidades.values()){
int-idCriterio=c.getId();
int idEquipamento=c.getequipmento();
int idArea=c.getSubArea;
ArrayList listFotos=c.getFotosList();
int IDIRegularidade=mDb.insert(idVistoria、idCriterio、idEquipamento、idArea);
对于(int i=0;i
方法
onCreateView
仅在片段必须在屏幕上加载UI时调用一次。因此需要替换
saveData()在另一个位置。

方法
onCreateView
仅在片段必须在屏幕上加载UI时调用一次。因此需要替换
saveData()在另一个地方。

什么是c?你什么时候调用那一行?我忘了放一段代码,c是一个对象。什么是unregularidades?请在这里发布你的日志,以便帮助更详细地理解问题。问题是listFotos返回null,当应用程序在后台运行时,如果我不让它运行,它工作正常!什么是c?你什么时候调用那一行?我忘了放一段代码,c是一个对象。什么是unregularidades?请在这里发布你的日志,以便帮助更详细地理解问题。问题是listFotos返回null,当应用程序在后台运行时,如果我不让它运行,它工作正常!该片段不会显示,我只将其作为菜单上的一项来保存数据,因此OnCreateView仅在单击它时才会被调用。我不确定,如果这是问题,但我会看看它!该片段不会显示,我只将其作为菜单上的一项来保存数据,因此OnCreateView仅在单击它时才会被调用。我不确定,如果这是问题,但我会看看它!