fragment生命周期详解

本文详细介绍了Android中Fragment的生命周期,包括其从创建到销毁过程中经历的主要状态及对应的回调方法,并通过示例代码展示了Fragment与Activity之间的交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fragment:碎片  用于多屏显示 可以把activity里面的逻辑进行分离
fragment就可以看成view,依附于activity之上  3.0的时候有了。
fragment上面必须有view才能被显示。
<--------------------!!!!!!需要注意的是,以下演示的例子API一定要使用4.0以上的,否则很可能出错------------->

显示到前台:
MyFragment  onAttach()  粘贴到activity上
MyFragment  onCreate()  fragment创建
MyFragment  onCreateView()  fragment创建自己的视图


MainActivity  onCreate()
MyFragment   onActivityCreated()   可以处理fragment数据的初始化


MainActivity  onStart()
MyFragment    onStart()


MainActivity  onResume()
MyFragment    onResume()


按后退键
MyFragment    onPause()
MainActivity  onPause()


MyFragment    onStop()
MainActivity   onStop()


MyFragment    onDestoryView()  销毁掉自己的视图
MyFragment    onDestory()
MyFragment    onDetach()  解除和activity的关系


MainActivity   onDetory()



代码如下:

1、main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <fragment
        android:id="@+id/fragment"
        class="com.njupt.fragmentlife.MyFragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
    
</LinearLayout>



2、MyFragment

package com.njupt.fragmentlife;

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 android.widget.TextView;

public class MyFragment extends Fragment {

	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		
		System.out.println("MyFragment onAttach");
	}
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		System.out.println("MyFragment onCreate");
	}
	
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		
		System.out.println("MyFragment onCreateView");
		TextView tv = new TextView(getActivity());
		tv.setText("我的fragment.... ");
		return tv;
	}
	
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
	    
		System.out.println("MyFragment onActivityCreate");
	}
	
	@Override
	public void onStart() {
		super.onStart();
	    
		System.out.println("MyFragment onStart");
	}
	
	@Override
	public void onResume() {
		super.onResume();
	    
		System.out.println("MyFragment onResume");
	}
	
	
	@Override
	public void onPause() {
		super.onPause();
	    
		System.out.println("MyFragment onPause");
	}
	
	@Override
	public void onStop() {
		super.onStop();
	    
		System.out.println("MyFragment onStop");
	}
	
	@Override
	public void onDestroyView() {
		super.onDestroyView();
	    
		System.out.println("MyFragment onDestroyView");
	}
	
	@Override
	public void onDestroy() {
		super.onDestroy();
	    
		System.out.println("MyFragment onDestroy");
	}
	
	
	@Override
	public void onDetach() {
		super.onDetach();
	    
		System.out.println("MyFragment onDetach");
	}
}


3、MainActivity

package com.njupt.fragmentlife;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		System.out.println("                 MainActivity onCreate");
	}

	@Override
	protected void onStart() {
		super.onStart();
	    
		System.out.println("                 MainActivity onStart");
	}
	
	@Override
	protected void onResume() {
		super.onResume();
	    
		System.out.println("                 MainActivity onResume");
	}
	
	
	@Override
	protected void onPause() {
		super.onPause();
	    
		System.out.println("                 MainActivity onPause");
	}
	
	
	@Override
	protected void onStop() {
		super.onStop();
	    
		System.out.println("                 MainActivity onStop");
	}
	
	@Override
	protected void onDestroy() {
		super.onDestroy();
	    
		System.out.println("                 MainActivity onDestroy");
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	
	
}


打出来的日志信息如下图所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值