我有一个管理大约四个片段的Activity。活动决定何时添加/替换/隐藏/显示某些片段。当我的应用程序关闭(由于内存不足)然后由用户重新打开时,片段不会自动读取到片段管理器。如何保存添加的片段,以便在重新启动应用程序时,用户将被带到之前的同一页面?
我假设使用onSaveInstanceState()但我不确定要保存什么......
由于
答案 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。但无论如何你应该有所了解。
:)