<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <fragment android:name="com.cstar.androidstudy.FragPageOne" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" tools:layout="@layout/frag_page_1"/> <fragment android:name="com.cstar.androidstudy.FragPageTwo" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" tools:layout="@layout/frag_page_2" /> </LinearLayout>
一个Activity中放入2个Fragment,然后测试Activity和2个Fragment的生命周期
专注于为中小企业提供成都网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业市中免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onCreate 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onAttach! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onCreate! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onCreateView! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onViewCreated! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onAttach 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onCreate! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onCreateView! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onViewCreated! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onActivityCreated! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onActivityCreated! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onRestart! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onStart! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onResume! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onPause! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onStop! 1169-1169/com.cstar.androidstudy D/fragment﹕ MainActivity.onDestroy! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onDestroyView! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onDestroy! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentOne.onDetach! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onDestroyView! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onDestroy! 1169-1169/com.cstar.androidstudy D/fragment﹕ FragmentTwo.onDetach!
注解:
1、主Activity onCreate后才开始依次初始化每个Fragment,每个Fragment先onAttach,然后onCreate,onCreateView,onViewCreated,这里值得注意的是,与Activity不同,Fragment的onCreate中,并没有创建、呈现子组件,所以在onCreate中,是无法访问子组件的。在onCreateView运行完成后,Fragment中才创建添加了子组件。所以至少要再onViewCreated中,才能用 fragment.getView().findViewById(R.id.xxx)获取子组件的引用。
2、主Activity中所有Fragment依次执行完onViewCreated之后,Activity才onStart开始显示界面。这时每个Fragment会调用onActivityCreated,仅仅在Activity初次onStart时,每个Fragment才会调用onActivityCreated,Activity以后再次调用onStart,Fragment不会再调用onActivityCreated(根据onActivityCreated的名称,这是可想而知的)。如果某个Fragment中的组件想访问其他Fragment中组件的数据,那么必须等到该Fragment调用onActivityCreated时,才能保证其他所有Fragment都已创建了子组件,在onActivityCreated之前,很可能会因为别的Fragment还没有初始化创建子组件而导致findViewById返回null。每个Fragment执行onActivityCreated后,会执行onStart。
3、主Activity分别执行onResume,onPause,onStop之后,每个Fragment也会跟着Activity之后依次执行同名的方法,即Activity.onResume——>Fragment1.onResume——>Fragment2.onResume……。但Fragment没有onRestart方法,主Activity重新回到栈顶显示界面,执行onRestart,onStart,每个Fragment依次执行onStart(没有onRestart)
4、主Activity退出时,Activity和每个Fragment依次执行onPause,onStop。最后主Activity调用onDestroy。每个Fragment依次调用onDestroyView,onDestroy,onDetach,注意Fragment最后的回调方法是onDetach而不是onDestroy
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:Activity与Fragment的生命周期测试-创新互联
分享地址:https://www.cdcxhl.com/article44/shiee.html
成都网站建设公司_创新互联,为您提供网站营销、网站导航、商城网站、ChatGPT、定制网站、营销型网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联