如果我的 Fragment 实现了一个接口和另一个类,则说该活动包含对该片段的引用。
IFragmentInterface myFragmentReference;
在 Fragment 生命周期的哪个阶段不再可用?这可以通过检查 myFragmentReference 是否为空来检测吗?(我知道有一个 FragmentManager 类)。
如果我的 Fragment 实现了一个接口和另一个类,则说该活动包含对该片段的引用。
IFragmentInterface myFragmentReference;
在 Fragment 生命周期的哪个阶段不再可用?这可以通过检查 myFragmentReference 是否为空来检测吗?(我知道有一个 FragmentManager 类)。
我不确定引用何时无效,但查看 Fragments 上的 Android 开发人员页面(http://developer.android.com/guide/components/fragments.html),它似乎在 onDetach 中。
您无法通过检查 myFragmentReference 是否为空来检测到这一点,因为引用不为空......它只是指向一个不再存在的片段。
处理此问题的最佳方法是在需要对片段执行某些操作时使用以下内容:
FragmentManager fm = getFragmentManager();
IFragmentInterface myFragmentReference = (IFragmentInterface) fm.findFragmentByTag(getTag());
添加片段时需要设置标签才能使用 findFragmentByTag()。
在被调用之后,Fragment
它本身不再可用。只要您保留它,您的参考就一直有效。您可以从您的界面访问所有方法,但您不能再将其用作一个。Fragment
onDestroy()
Fragment