片段在重启时未读取

时间:2012-03-08 01:34:11

标签: android android-fragments fragment

我有一个管理大约四个片段的Activity。活动决定何时添加/替换/隐藏/显示某些片段。当我的应用程序关闭(由于内存不足)然后由用户重新打开时,片段不会自动读取到片段管理器。如何保存添加的片段,以便在重新启动应用程序时,用户将被带到之前的同一页面?

我假设使用onSaveInstanceState()但我不确定要保存什么......

由于

1 个答案:

答案 0 :(得分:1)

我做的一件事就是将显示的屏幕跟踪为整数。 Activity将保存一个私有int,其中当前屏幕为其值。

private int currentScreen = -1;
private static final int SCREEN_MENU = 0;
private static final int SCREEN_PROFILE = 1;
private static final int SCREEN_HELP = 2;

private void switchToMenu(){
    currentScreen = SCREEN_MENU;
    //Load Fragment into frame.
}

private void switchToProfile(){
    currentScreen = SCREEN_PROFILE;
    //Load Fragment into frame.
}

private void switchToHelp(){
    currentScreen = SCREEN_HELP;
    //Load Fragment into frame.
}

@Override
public void onResume(){
    switch(currentScreen){
    case SCREEN_MENU: switchToMenu(); break;
    case SCREEN_PROFILE: switchToProfile(); break;
    case SCREEN_HELP: switchToHelp(); break;
    }
}

此方法不会保存屏幕上的所有内容,因为我只想跟踪当前显示的页面,因此我只关心currentScreen。但无论如何你应该有所了解。

:)