2017-02-07 2 views
0

У меня есть Menu (https://developer.android.com/guide/topics/ui/menus.html). Я собираюсь сделать что-то вроде:Завершение работы с FragmentManager после onSelectItem

  1. Когда кто-то выбрать из меню Option X Я хотел бы показать FragmentDialog F.
  2. Если пользователь нажимает на OK на F тогда я хотел бы, чтобы отобразить другой FragmentDialog G/

A. Является первым шагом в безопасности? Я имею в виду: когда я показываю фрагмент, я должен зафиксировать FragmentManager. Как вы знаете, мы можем зафиксировать FragmenManager тогда и только тогда, когда Activity не остановлен. Могу ли я быть уверенным, что это безопасно? Зачем?

B. Тот же вопрос, но для второго шага.

ответ

0

Жизненный цикл деятельности и фрагментации тесно связаны. См. Официальную документацию для fragment lifecycle, чтобы узнать больше об этом.

Теперь вопрос о совершении FragmentManager. Вы должны зафиксировать FragementManager, когда ваша активность активна и восстановлена ​​(если по некоторым причинам уничтожена). И поскольку жизненные циклы фрагмента и активности тесно связаны, вы можете быть уверены, что если ваш фрагмент активен, ваша активность также будет активной (ответ на вопрос B).

So Да, Это абсолютно безопасно.

+0

Спасибо! Я могу быть уверен, что мой Фрагмент (и, следовательно, активность) активен, потому что это передний план? –

+0

Если вы совершаете транзакцию фрагмента в правильных жизненных циклах, тогда вы в безопасности. Например, вы не можете совершать транзакции после того, как вызывается функция 'onSaveInstanceState'. –

+0

Вы сказали что-то вроде: небо голубое, если нет облака. Очевидный. –

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