Fragment(碎片)是必须嵌入在 Activity(活动) 中使用的。Fragment的生命周期随着Activity的生命周期的变化而变化

一、首先让我们看下Activity和Fragment的生命周期对比

二、通过代码来看一下

 package com.xqx_life;

 import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyFragment fragment = new MyFragment();
FragmentManager manager = getFragmentManager();
FragmentTransaction action = manager.beginTransaction();
action.add(R.id.show_fragment,fragment );
action.commit(); System.out.println("现在执行Activity的 onCreate()方法");
} @Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("现在执行Activity的 onStart()方法");
} @Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("现在执行Activity的 onResume()方法");
} @Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
System.out.println("现在执行Activity的 onRestart()方法");
} @Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("现在执行Activity的 onPause()方法");
} @Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("现在执行Activity的 onStop()方法");
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("现在执行Activity的 onDestroy()方法");
} }

Activity

 package com.xqx_life;

 import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; public class MyFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onCreateView()方法");
View view = inflater.inflate(R.layout.layout_fragment, container, false);
return view;
} @Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onAttach()方法");
super.onAttach(activity);
} @Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onCreate()方法");
super.onCreate(savedInstanceState);
} @Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onActivityCreated()方法");
super.onActivityCreated(savedInstanceState);
} @Override
public void onStart() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onStart()方法");
super.onStart();
} @Override
public void onResume() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onResume()方法");
super.onResume();
} @Override
public void onPause() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onPause()方法");
super.onPause();
} @Override
public void onStop() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onStop()方法");
super.onStop();
} @Override
public void onDestroyView() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onDestroyView()方法");
super.onDestroyView();
} @Override
public void onDestroy() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onDestroy()方法");
super.onDestroy(); } @Override
public void onDetach() {
// TODO Auto-generated method stub
System.out.println("现在执行Fragment的 onDetach()方法");
super.onDetach();
} }

Fragment

 <?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" > </LinearLayout>

fragment布局

注意清单文件最低SDK版本要设置为11

 <uses-sdk
android:minSdkVersion=""
android:targetSdkVersion="" />

看一下效果:

启动activity之后的生命

关闭activity 结束之前的生命

安卓开发_深入理解Activity和Fragment的关系的更多相关文章

  1. 安卓开发_深入理解Content Provider

    一.Content Provider概述 Content Provider用于保存和获取数据,并使其对所有应用程序可见,这是不同应用程序之间共享数据的唯一方式,因为在Android中没有提供所有应用可 ...

  2. 安卓开发_深入理解Handler消息传递机制

    一.概述 因为子线程的run()方法无法修改UI线程(主线程)的UI界面,所以Android引入了Handler消息传递机制,实现在新创建的线程中操作UI界面 二.消息类(Message) 消息类是存 ...

  3. 安卓开发_浅谈Fragment之ListFragment

    ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1.ListFragment 本身具只有一个ListV ...

  4. 安卓开发_深入学习ViewPager控件

    一.概述 ViewPager是android扩展包v4包(android.support.v4.view.ViewPager)中的类,这个类可以让用户左右切换当前的view. ViewPager特点: ...

  5. 安卓开发_浅谈ListView(SimpleAdapter数组适配器)

    安卓开发_浅谈ListView(ArrayAdapter数组适配器) 学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表 总共3部分 一.MainAc ...

  6. 安卓开发_数据存储技术_sqlite

    一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...

  7. 安卓开发_浅谈ListView(自定义适配器)

    ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...

  8. 安卓开发_数据存储技术_SharedPreferences类

    SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...

  9. 安卓开发_浅谈Android动画(四)

    Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属 ...

随机推荐

  1. docker:(2)通过Dockerfile构建镜像并发布web项目

    上一篇讲解了docker的基本使用 http://www.cnblogs.com/xiaochangwei/p/8204511.html 虽然通过修改获取到的镜像可以达到使用目的,但是多操作几次就会发 ...

  2. python中使用queue实现约瑟夫环(约瑟夫问题)求解

    约瑟夫问题:是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围. 从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列: 依 ...

  3. 从CSR产品名录看公司发展历程和业务方向

    产品型号                                                                           主要功能 BC3系列(例BC31A223, ...

  4. 【Object类、常用API】

    Object类 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类 ...

  5. 测试工具之badboy

    badboy这个工具本身用处不是很大,但有个录制脚本的功能,还是jmeter脚本,所以针对这一点很多懒人就可以通过这个录制脚本,而不需要自己去编写 badboy工具最近还是2016年更新的,后面也没在 ...

  6. 【Eclipse】添加builder实现NDK的自动编译

    最近在做NDK相关的东西,Eclipse里面java的自动编译很方便,每次改动后就能自己编译显示错误,而NDK的C/C++文件就需要保存后再手动点build. 研究了下发现java code的自动编译 ...

  7. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十三):系统备份还原

    系统备份还原 在很多时候,我们需要系统数据进行备份还原.我们这里就使用MySql的备份还原命令实现系统备份还原的功能. 新建工程 新建一个maven项目,并添加相关依赖,可以用Spring boot脚 ...

  8. Debug技巧

    多线程调试 有些时候为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下. 在IDE里断点停下来的时候,可以切换到另外的线程中,跑其他的代码,不会互相影响.这里是有 ...

  9. ftp 读取目录列表失败

    在防火墙设置的“例外”选项卡中添加程序: C:\WINDOWS\system32\inetsrv\inetinfo.exe,确定即可!

  10. apache log4j打印日志源码出口

    Throwable.class: public void printStackTrace(PrintStream s) { synchronized (s) { s.println(this); St ...