安卓开发_深入理解Activity和Fragment的关系
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的关系的更多相关文章
- 安卓开发_深入理解Content Provider
一.Content Provider概述 Content Provider用于保存和获取数据,并使其对所有应用程序可见,这是不同应用程序之间共享数据的唯一方式,因为在Android中没有提供所有应用可 ...
- 安卓开发_深入理解Handler消息传递机制
一.概述 因为子线程的run()方法无法修改UI线程(主线程)的UI界面,所以Android引入了Handler消息传递机制,实现在新创建的线程中操作UI界面 二.消息类(Message) 消息类是存 ...
- 安卓开发_浅谈Fragment之ListFragment
ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1.ListFragment 本身具只有一个ListV ...
- 安卓开发_深入学习ViewPager控件
一.概述 ViewPager是android扩展包v4包(android.support.v4.view.ViewPager)中的类,这个类可以让用户左右切换当前的view. ViewPager特点: ...
- 安卓开发_浅谈ListView(SimpleAdapter数组适配器)
安卓开发_浅谈ListView(ArrayAdapter数组适配器) 学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表 总共3部分 一.MainAc ...
- 安卓开发_数据存储技术_sqlite
一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...
- 安卓开发_浅谈ListView(自定义适配器)
ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...
- 安卓开发_数据存储技术_SharedPreferences类
SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...
- 安卓开发_浅谈Android动画(四)
Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1. ValueAnimator 基本属 ...
随机推荐
- Android Fragment用法知识点的讲解
Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...
- 仿B站项目——(2)环境配置,文件目录
环境配置 主要参考入门Webpack,看这篇就够了,webpack入门和webpack实用配置. 实用开发环境 利用下面的webpack.json和webpack.config.js可以搭建一个使用e ...
- WCF绑定netTcpBinding寄宿到IIS
继续沿用上一篇随笔中WCF服务类库 Wettery.WcfContract.Services WCF绑定netTcpBinding寄宿到控制台应用程序 服务端 添加WCF服务应用程序 Wettery. ...
- 设置select,option文本居中
设置select,option文本居中 可以通过 padding 属性设置内边距,使它看上去居中: select{ # 从左到右依次表示上内边距,右内边距,下内边距,左内边距: padding :0 ...
- java微信分享
先吐槽一下!!! 哎,张小龙写的教程真差,要研究半天才能用上,大家按我的步骤12345,包你药到病除: 1.官方参考: https://mp.weixin.qq.com/wiki?t=resource ...
- python常用函数和方法 - 备忘
语法语句篇 除法运算(精确运算和截断运算) 在python2中,除法运算通常是截断除法.什么是截断除法: >>> 3/4 0 # 自动忽略小数项 要是想 得到正确结果 怎么办呢? m ...
- spring载入外部配置文件的方法
<bean class=“org.springframework.beans.factory.config.PropertyPlaceholderConfigurer“> <prop ...
- 从零开始学 Web 之 移动Web(五)touch事件的缺陷,移动端常用插件
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- MongoDB 系列文章
MongoDB 系列文章 本文的内容是基于 MongoDB 4.0 的. 参考于 MongoDB 4.0 官方文档. 搭建 MongoDB从搭建到优化 MongoDB-副本集搭建与管理 管理 Mong ...
- JVM笔记10-性能优化之高级特性
一.垃圾回收器配置和 GC 日志分析 1.堆典型配置: 32位的操作系统限制堆大小介于1.5G到2G,64位操作系统无限制,同时系统可用虚拟内存和可用物理内存都会限制最大堆的配置. 堆空间分配典型配置 ...