Android之fragment生命周期解析

作者:盐城市天行软件有限公司  来源:www.szgjp.com未知  发布时间:2017-09-02 11:50:27
Android之fragment生命周期解析

上篇讲到了Fragment的基础应用,现在给大家演示一下Fragment的生命周期是什么样子的。关于Fragemnt的基础应用,请见。

一、首先,我们先看一下Fragment的生命周期

这里写图片描述


跟Activity生命周期的对比

这里写图片描述

Activity直接影响它所包含的fragment的生命周期,所以对activity的某个生命周期方法的调用也会产生对fragment相同方法的调用。例如:当activity的onPause()方法被调用时,它所包含的所有的fragment们的onPause()方法都会被调用。vcD4NCjxwPkZyYWdtZW50schhY3Rpdml0ebu50qq24LP2vLi49sn6w/zW3Mbau9i197e9t6ijrNXi0Km27s3itcS3vbeoysfOqsHL0+thY3Rpdml0ebXEvbu7pbb4yejBoqOsyOfPwqO6PC9wPg0KPHA+b25BdHRhY2goKTwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。

onCreateView()

当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。

onActivityCreated()

当activity的onCreated()方法返回后调用此方法。

onDestroyView()

当fragment的layout被销毁时被调用。

onDetach()

当fragment被从activity中删掉时被调用。

一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的

二、测试用的代码(这里就简单实现一下,打印出来)

package com.jp.fragment; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.framentdemo.R; public class Fragmentdemo extends Fragment { /** * 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。 */ public void onAttach(Activity activity) { super.onAttach(activity); System.out.println(Fragment————onAttach()); } /** * 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。 */ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { System.out.println(Fragment————()); return inflater.inflate(R.layout.title_frament, container, false); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.out.println(Fragment————onCreate()); } /** * 当activity的onCreated()方法返回后调用此方法。 */ public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); System.out.println(Fragment————onActivityCreated()); } /** * */ public void onStart() { super.onStart(); System.out.println(Fragment————onStart()); } /** * */ public void onResume() { super.onResume(); System.out.println(Fragment————onResume()); } public void onPause() { super.onPause(); System.out.println(Fragment————onPause()); } public void onStop() { super.onStop(); System.out.println(Fragment————onStop()); } /** * 当fragment的layout被销毁时被调用。 */ public void onDestroyView() { super.onDestroyView(); System.out.println(Fragment————onDestroyView()); } public void onDestroy() { super.onDestroy(); System.out.println(Fragment————onDestroy()); } /** * 当fragment被从activity中删掉时被调用。 */ public void onDetach() { super.onDetach(); System.out.println(Fragment————onDetach()); } }

三、场景演示

场景演示 : 切换到该Fragment

这里写图片描述

切换到其他Fragment:

这里写图片描述

切换回本身的Fragment:

这里写图片描述

回到桌面:

回到应用:

退出应用:

这里写图片描述

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:神农架网站建设 http://shennongjia.45qun.com


上一篇:众网络公司水涨船高,A6友链联盟坚持做客户一辈子的生
下一篇:最后一页