2015-07-22 4 views
2

Я исследовал переполнение стека, но, похоже, не нашел решения.Android: какой метод вызывается, когда фрагмент выталкивается из backstack

Я один mainActivity и несколько frgaments, я делаем операцию фрагмента с помощью replace способа и соответствующего фрагмента добавляет к backstack, но моя проблема в том, когда я вытолкнуть его из задней стеки, который обратный вызов называется я хочу кой-что проверить, прежде чем вытолкнуть его из стека метода onResume() не вызывающий, когда я вытолкнуть его из заднего стека

HELP

+0

проверить жизненный цикл фрагмента http://developer.android.com/guide/components/fragments.html – bGorle

ответ

5

Просто сделайте следующее:

getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() 
    { 
     public void onBackStackChanged() 
     {     
      // Your logic here    
     } 
    }); 

Этот обратный вызов будет вызываться при каждом изменении в обратном стеке - даже при добавлении фрагмента. Если вы хотите знать, когда фрагмент был удален, то добавьте следующую логику

Fragment someFragment = (Fragment)getSupportFragmentManager().findFragmentById(R.id.fragmentItem); 

if (someFragment == null) { 
    // this fragment was removed from back stack 
} 
+0

, но он также вызывается, когда фрагмент сначала инициализируется ПОЧЕМУ? – Ravi

+0

обновил мой ответ – MarkySmarky

+0

@thanx Marky Мне интересно, как лучше определить вышеуказанный метод в активности или фрагменте? – Ravi

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