Фрагмент не читается при перезапуске - PullRequest
0 голосов
/ 08 марта 2012

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

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

Спасибо

1 Ответ

1 голос
/ 08 марта 2012

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

Этот метод не сохраняет все на экране, так как я хочу отслеживать только текущую страницу, поэтому меня интересует только текущий экран. Но вы все равно должны получить представление.

:)

...