Android 片段中的静态场

Android 片段中的静态场,android,android-fragments,Android,Android Fragments,我有一个FragmentActivity,我从中调用一个片段,其中有一个静态字段和ExpandableListView 在按下exist或back按钮后,我重新打开应用程序,静态字段的值仍然存在(ExpandableListView的形状也相同)。这正是我所期望的。不幸的是,过了一段时间(但并非总是),当我返回应用程序时,静态字段有其默认值,而不是最新的值,我认为这意味着片段类再次被实例化。但ExpandableListView与最初离开应用程序之前一样 为什么会发生这种行为 顺便说一下,我这样

我有一个FragmentActivity,我从中调用一个片段,其中有一个静态字段和ExpandableListView

在按下exist或back按钮后,我重新打开应用程序,静态字段的值仍然存在(ExpandableListView的形状也相同)。这正是我所期望的。不幸的是,过了一段时间(但并非总是),当我返回应用程序时,静态字段有其默认值,而不是最新的值,我认为这意味着片段类再次被实例化。但ExpandableListView与最初离开应用程序之前一样

为什么会发生这种行为

顺便说一下,我这样做是因为我想记住在ExpandableListView中展开了哪一组项

下面是调用片段的寻呼机适配器

public class CollectionPagerAdapter  extends FragmentStatePagerAdapter {

private Local local;
private Online online;

public CollectionPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int i) {
    switch (i) {
    case 0:
        local = new Local(); 
        return local;
    case 1:
        online = new Online(); 
        return online;
    }
    return null;
}

@Override
public int getCount() {
    return 2;
}

public void updateLocal(String update) {
    local.updateLocal(update);
}

}

我的猜测是FragmentStatePagerAdapter在删除保存的信息之前会在内存中保留一段时间,因此,当数据重新初始化后经过较长时间返回时,您将获得默认值。如果要存储数据,可以使用共享首选项(对于较小的数据)

共享优先权-


SQL数据库-

您使用的是哪种类型的寻呼机适配器?你能把你所有的密码都贴出来吗?很有趣。我刚开始在这里问问题。在第一个问题中,有人批评我放了太多代码:)我在FragmentStatePagerAdapter上面添加了。我想这就是你想要的。添加代码从来都不是一个坏主意,实际上不添加代码更糟糕。这是需要的。否则,我们无能为力;)