Одна вещь, которую я делаю, - отслеживание отображаемого экрана в виде целого числа. Активность будет содержать приватный 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;
}
}
Этот метод не сохраняет все на экране, так как я хочу отслеживать только текущую страницу, поэтому меня интересует только текущий экран. Но вы все равно должны получить представление.
:)