什么时候会写Fragment.mActivity字段?

时间:2016-11-23 05:28:54

标签: android android-fragments

Fragment的源代码中,有一个名为mActivity的字段:

package android.app;
public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListener {

    // Activity this fragment is attached to.
    Activity mActivity;

为了找到这个字段的写法,我尝试了如下:

  1. 我检查了Fragment的源代码,我在Fragment.initState()方法中只发现了一种写作行为:

    mActivity = null;
    

    但是Fragment经常使用mActivity,必须在某个地方写字段。

  2. mActivity的访问权限为default,因此可能还有其他课程会编写此字段。然后我检查了Fragment类的用法,但没有找到与该字段的写作行为有关的内容。

  3. 不知道下一步该做什么,也许是Android中的一些特殊流程?

  4. 有谁能告诉我上述方法是否正确才能找到这些问题的答案? 请给我一些关于查找类/字段/方法用法的建议。

1 个答案:

答案 0 :(得分:1)

不是Fragment,但FragmentManager实际上管理mActivity字段。由于它不是私有的,任何包本地类都可以访问它。

检查FragmentManager.moveToState()方法,line 900是否支持FragmentManager
查看FragmentManager.moveToState()方法line 848 android.app.FragmentManager