2013-03-21 3 views
3

я программно добавлен фрагмент, который создается на активность в OnCreate() вызов, как это:Нужно ли мне удалить программно добавлен фрагмент,

mFragment = (MyFragment) pFm.findFragmentByTag(TAG); 

    if (mFragment == null) {   
     mFragment = MyFragment.newInstance(); 
     pFm.beginTransaction().add(mFragment, MyFragment.class.getSimpleName()).commit(); 
    } 

Время жизни фрагмента неопределенными. Вопрос в том, должен ли я удалить его в какой-то момент ?, например, onDestroy(), если isFinishing() возвращает true?

+0

почему вы хотите его удалить ... ??? – Developer

+0

Моя интуиция подсказывает, что вызовы add() часто должны иметь соответствующие вызовы remove(). Однако, похоже, это не так. – lstipakov

+1

@Stipa, конечно, в какой-то момент происходит вызов, который вызывается где-то. Однако, если вам не нужно явно вызывать это самостоятельно по какой-либо причине (а не replace()), система позаботится об этом для вас. – Shade

ответ

1

Нет, вам не обязательно. Добавление фрагмента программно не делает этот фрагмент отличным от тех, которые добавляются, например, с помощью тега <fragment> в XML. Фрагмент lifecycle methods будет вызван во многом так же, как вызываются методы жизненного цикла вашей активности. Они будут следить за фрагментом, когда приложение выходит.

1

Простой ответ: нет, его не нужно удалять. Прикрепленные фрагменты уничтожаются, когда они отделены от действия или завершения деятельности. См. http://developer.android.com/guide/components/fragments.html для получения дополнительной информации.

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