安卓开发_深入理解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 基本属 ...
随机推荐
- MySQL学习笔记1(增删查改)
创建表: /* 创建数据库 create database 数据库名; */ CREATE DATABASE mybase; /* 使用数据库 use 数据库名 */ USE mybase; /* 创 ...
- centos7上安装nagios
前言:Nagios是一款开源的免费网络监视工具,可以监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员.流量 ...
- 常用的评价指标:accuracy、precision、recall、F1-score、ROC-AUC、PR-AUC
- scrapy爬虫--苏宁图书
实现业务逻辑如下: 1. 创建scrapy项目,并生成 爬虫2. 在suning.py中实现Schedul 和 Spider业务逻辑3. 修改start_urls为正确的初始请求地址4. 构造pars ...
- 1ink 与 @import 的区别
1ink与@import的区别 目录 1ink与@import的区别 差别1:归属关系的差别 差别2:加载顺序的差别 差别3:兼容性的差别 差别4:使用dom控制样式时的差别 1ink与@import ...
- [原]ZolltyMVC框架简介
ZolltyMVC框架是一款轻量级的Java应用编程框架(Java Application Framework),融合了常用的IOC/DI.MVC(注解.XML配置式.RESTful风格.模型驱动.视 ...
- linux系统中的文件权限详解(转)
一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...
- matlab中数组的拼接
matlab中,行拼接用逗号“:”,列拼接用分号“,”.示例如下: >> a=[1,2,3,4] 结果: a = 1 2 3 4 >> b=[1;2;3;4] 结果: b = ...
- redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
- 使用Spring Boot开发 “Hello World” Web应用
环境准备 由于现在很多IDE都支持Maven, 所以我们将使用Maven构建该工程: 开始之前,需要先安装Java和Maven: 本工程将基于Spring Boot 1.4.3.RELEASE开发,推 ...