片段生命周期。什么时候引用片段变得无效?

时间:2013-07-24 17:42:11

标签: android android-fragments

如果我的Fragment实现了一个接口和另一个类,那么该活动将保存对该片段的引用。

  IFragmentInterface myFragmentReference;

片段生命周期中的哪一点不再可用?可以通过检查myFragmentReference是否为空来检测吗? (我知道有一个FragmentManager类。)

2 个答案:

答案 0 :(得分:0)

我不确定引用何时变得无效,但查看片段(http://developer.android.com/guide/components/fragments.html)上的Android开发者页面,它似乎在onDetach中。

你无法通过检查myFragmentReference是否为空来检测到这一点,因为引用不是null ...它只是指向一个不再存在的片段。

处理此问题的最佳方法是在需要对片段执行某些操作时使用以下内容:

FragmentManager fm = getFragmentManager();
IFragmentInterface myFragmentReference = (IFragmentInterface) fm.findFragmentByTag(getTag());

添加片段时需要设置标签才能使用findFragmentByTag()。

答案 1 :(得分:0)

调用Fragment后,Fragment本身不再可用作onDestroy()。只要您保留,您的参考就会一直有效。您可以从界面访问所有方法,但不能再将其用作Fragment