Gam*_*ubi 8 java android android-lifecycle android-fragments android-activity
我遇到的问题onActivityCreated()是在调用activity的onStart()方法后调用我的片段方法.这似乎意味着我的活动的onCreate()方法正在完成之后onStart()?情况不是这样......可以吗?在我的活动的生命周期中,我的片段onActivityCreated()被称为?此外,如果我有多个片段,我如何控制片段onActivityCreated()调用的顺序?
在我的活动中:
@Override
protected void onStart() {
super.onStart();
methodA(); // this is called ...
}
Run Code Online (Sandbox Code Playgroud)
在我的片段中:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
methodB(); // ... before this
}
Run Code Online (Sandbox Code Playgroud)
Pha*_*hai 10
在我的activity的onStart()方法被调用之后调用onActivityCreated()方法
请记住,onActivityCreated()方法只是来自活动的片段的回调.
这似乎意味着我的活动onCreate()方法在onStart()之后完成?情况不是这样......可以吗?
错误!Activity和fragment是分开的,所以Activity中的onCreated()方法和片段中的onActivityCreated()方法不能相同.如上所述,在Fragment中,它只是一个带有活动状态的回调映射.
让我们看看这张图片,以便更好地理解.

来自Google的官方文档: Activity onStart()
在活动变得对用户可见之前调用.如果活动到达前台,则按onResume(),如果隐藏,则按onStop().
片段回调:onActivityCreated()
在创建片段的活动并且实例化此片段的视图层次结构时调用.一旦这些部分就位,它可用于进行最终初始化,例如检索视图或恢复状态.对于使用setRetainInstance(boolean)保留其实例的片段也很有用,因为此回调告诉片段何时与新活动实例完全关联.这是在onCreateView(LayoutInflater,ViewGroup,Bundle)之后和onViewStateRestored(Bundle)之前调用的.
最后一个:
此外,如果我有多个片段,我如何控制片段的onActivityCreated()调用的顺序?
这取决于您使用哪种方式将片段添加到活动中.基本上,顺序将是添加的片段的顺序.
| 归档时间: |
|
| 查看次数: |
12243 次 |
| 最近记录: |