2012-03-08 3 views
0

У меня есть деятельность, которая управляет четырьмя фрагментами. Деятельность решает, когда добавлять/заменять/скрывать/показывать определенные фрагменты. Когда мое приложение закрывается (из-за низкой памяти), а затем снова открывается пользователем, фрагменты автоматически не считываются в диспетчер фрагментов. Как сохранить, какие фрагменты добавлены, чтобы при перезапуске приложения пользователь был перенесен на ту же страницу, на которой они были ранее?Фрагмент не читается при перезапуске

Я предполагаю использовать onSaveInstanceState(), но я не знаю точно, что сохранить ...

Благодаря

ответ

1

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

:)

Смежные вопросы