2015-09-02 2 views
1

Существует мой фрагмент контейнера:Android - Выпуск на фрагмент навигации после зева близко фона приложения

<FrameLayout 
     android:id="@+id/fragmentContainer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

MapActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_map); 

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.add(R.id.fragmentContainer, MainMapFragment.newInstance(), "MainMapFragment"); 
    transaction.commit(); 
} 

Тогда в остальной части моего заявления я:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.replace(R.id.fragmentContainer, NavigationFragment.newInstance()); 
transaction.addToBackStack("NavigationFragment"); 
transaction.commit(); 

Все работает отлично, если я нажимаю кнопку «Назад», или мое приложение идет в фоновом режиме, а затем возвращается к нему. Фрагмент A -> Фрагмент B: назад нажат => Фрагмент A: назад нажата => закрыть приложение.

Но если приложение находится в фоновом режиме и Android OS убил его, чтобы освободить память появляется вопрос:

Фрагмент A -> Фрагмент B: назад нажимается => Фрагмент А ON Фрагмент B (B всегда видна на экране): назад нажата => Фрагмент A (B не отображается): назад нажмите => закрыть приложение.

У кого-нибудь есть идея?

ответ

2

Вы должны проверить, чтобы увидеть, если savedInstanceState, например, так:

if(savedInstanceState == null) 
{ 
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.add(R.id.fragmentContainer, MainMapFragment.newInstance(), "MainMapFragment"); 
    transaction.commit(); 
} 

Что происходит, что когда вы помещаете приложение в фоновом режиме, а затем вернуться, вы воссоздавать фрагменты, а не повторное использование их (это то, что вы хотите сделать, если вы помещаете приложение в фоновый режим). Это связано с тем, что фрагменты не уничтожаются, когда вы помещаете приложение в фоновый режим, но когда вы используете приложение, они воссоздаются.

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