文档在Android开发者网站的片段中定义良好,但我对片段中的一个特定生命周期方法有疑问
http://developer.android.com/guide/components/fragments.html
onAttach()
当片段与之关联时调用 活动(活动在这里传递)。
此协会内部有什么作用?
此外,我在这里查看了
默认构造函数。每个片段都必须有一个空构造函数,所以 它可以在恢复其活动状态时进行实例化。它是 强烈建议子类没有其他构造函数 带参数,因为这些构造函数不会被调用 片段被重新实例化;相反,参数可以由。提供 调用者使用setArguments(android.os.Bundle)并稍后检索 使用getArguments()进行片段化。一般不应用 实现一个构造函数。第一个应用程序代码运行在哪里 准备好使用的片段在onAttach(android.app.Activity)中, 点片段实际上与其活动相关联。 某些应用程序也可能希望实现 onInflate(android.app.Activity,android.util.AttributeSet,android.os.Bundle) 从布局资源中检索属性,但应该注意 这里是因为片段附加到它上面 }
但同样的术语,但没有确切的解释。
答案 0 :(得分:2)
Fragment
只是一个可以附加到Activity
或与活动分离的组件。换句话说,Activity就像Fragment的主机。
为了知道片段何时附加或与主机活动分离,它提供了2种回调方法:
onAttach()
- 在将活动片段添加到活动时由系统调用
onDetach()
- 从活动中删除片段时由系统调用
当他们说“片段已与活动相关联”时,表示片段已添加到活动中,这意味着从此处开始调用getActivity()
。
答案 1 :(得分:1)
这里的问题是这个协会在内部做了什么?
我在FrgmentManager类中找到了以下代码,我正在寻找什么, 这显示了如何制作 ASSOCIATION ,
该片段已与活动
相关联
f.mActivity = mActivity;
f.mParentFragment = mParent;
f.mFragmentManager = mParent != null
? mParent.mChildFragmentManager : mActivity.mFragments;
f.mCalled = false;
f.onAttach(mActivity);
上面的代码完成了Fragment与之关联的Activty的分配,然后调用onAttach(..)