Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。Activity相当于Java Web开发的Servlet。当Activity处于Android应用运行时,同样受系统控制、有生命周期。

4.1 建立、配置和使用Activity

4.1.1 Activity 建立自己的Activity需要集成Activity基类,在不同的应用场景,有时也能集成Activity的子类。

Activity间接或直接继承了Context、ContextWrapper、ContextThemeWrapper等基类,可以直接调用它们的方法。

创建一个Activity需要实现一个或多个方法,其中最常见的是onCreate()方法,该方法会再Activity创建时回调,该方法调用setContentView()方法来显示要展示的View。 findViewById()方法获取界面中的组件。

(源码\04\4.1\OtherActivity)

4.1.2 配置Activity  Android应用要求所有应用程序组件都必须显式进行配置。

4.1.3 启动、关闭Activity   用finish()方法结束(源码\04\4.1\StartActivity)

4.1.4 用Bundle在Activity之间交换数据:用Activity之间的信使Intent,Intent提供了多个重载方法来携带数据。

(源码\04\4.1\BundleTest)

4.1.5 启动其它Activity并返回结果

(源码\04\4.1\ActivityForResult)

4.2 Activity的回调机制 

4.3 Activity的生命周期与加载模式

Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶。Activity大致有4个状态:活动状态、暂停状态、停止状态、销毁状态。

4.3.1 Activity的生命周期 P263

4.3.2 Activity与Servlet的相似性与区别

4.3.3 Activity的4种加载模式

4.4 Fragment 详解

4.4.1 Fragment 概述

4.4.2 创建Fragment

(源码\04\4.4\FragmentTest)

4.4.3 Fragment与Activity通信

把Fragment添加到Activity的方法:

方法一:在布局文件中使用<fragment .../>元素,其android:name属性指定Fragment的实现类。

方法二:通过Activity的getFragmentManager()方法返回FragmentManager,调用FragmentManager.beginTransaction()方法即可返回FragmentTransaction对象,这个对象的add()方法可以添加Fragment。

把Fragment和Activity相互查找的方法:

Fragment调用getActivity()方法可获得它所在的Activity。

Activity获取它包含的Fragment:调用关联的FragmentManager的findFragmentById()或findFragmentByTag()方法。

android:id 和 android:tag属性都可以用于标识Fragment。

把Fragment和Activity相互传递数据的方法:

Activity向Fragment传递数据:创建Bundle数据包,调用Fragment的setArguments()方法。

Fragment向Activity传递数据(也可以运行中实时传递): 在Fragment中定义一个内部回调接口,再让Activity实现该回调接口。

4.4.4 Fragment管理与Fragment事务 (FragmentManager与FragmentTransaction)

Activity依靠FragmentManager管理Fragment。

与数据库事务类似,FragmentTransaction代表了Activity对Fragment执行的多个改变操作,执行了一个或多个 改变后,需调用commit()方法提交事务。

(源码\04\4.4\SeniorFragmentTest)

4.5 Fragment的生命周期

P285  生命周期 各个时期会被系统回调的方法。

疯狂Android讲义 - 学习笔记(四)的更多相关文章

  1. 疯狂Android讲义 - 学习笔记(一)

    常用开发工具的用法 android : 启动Android SDK管理器 android --help  查看具体用法 android create avd -n t10 -t 10 -b armea ...

  2. 疯狂Android讲义 - 学习笔记(八)

    第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...

  3. 疯狂Android讲义 - 学习笔记(七)

    第8章 Android数据存储与IO  Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...

  4. 疯狂Android讲义 - 学习笔记(六)

    第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...

  5. 疯狂Android讲义 - 学习笔记(五)

    第五章 Android使用统一的Intent对象来封装“启动意图”,不管是启动Activity.Service组件.或者BroadcastReceiver等,提供了一致的编程模型.Intent设计有点 ...

  6. 疯狂Android讲义 - 学习笔记(三)

    Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型  主要涉及三类对象:Event ...

  7. 疯狂Android讲义 - 学习笔记(二)

    Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...

  8. 【疯狂Java讲义学习笔记】【流程控制与数组】

    [学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...

  9. 【疯狂Java讲义学习笔记】【数据类型与运算符】

    [学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...

随机推荐

  1. Redis系列(五)-Opserver的监控

    阅读目录: 基本介绍 使用配置 部署实例 面板属性 基本介绍 Opserver是Stack Exchange的一个开源监控系统,基于Net.MVC开发,所以Net程序员可以轻松基于它二次开发.它主要监 ...

  2. 配置apache和nginx的tomcat负载均衡

    概述 本篇文章主要介绍apache和nginx的相关配置,tomcat的相关安装配置我在前面有写过一篇,详细介绍通过两种配置方法配置nginx. tomcat配置参考:http://www.cnblo ...

  3. 修改TNSLSNR的端口

    oracle 服务一启动 TNSLSNR.exe 会占用8080端口,这时,如果我们其他程序需要使用8080端口就会比较麻烦,所以需要改一下端口: 用dba账户登录 CMD>sqlplus sy ...

  4. SqlServer2008安装时提示重启计算机失败 解决办法

    问题描述: 在安装Sql Server 2008时提示重启计算机,重启之后不行,仍需要重启计算机. 如下图所示: 解决方法: 1.运行(或按键盘Win+R 组合键),输入regedit,调出注册表管理 ...

  5. 每天一个linux命令(26):用SecureCRT来上传和下载

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem.文 ...

  6. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  7. How to Use Android ADB Command Line Tool

    Android Debug Bridge (adb) is a tool that lets you manage the state of an emulator instance or Andro ...

  8. MonogDB初探增加和删除

    1.插入并保存文档       在插入数据之前,首先用mongodb Shell命令db.baseUser.find() 查找集合的数据.      想必大家能猜到结果,什么东西都没有,那接着来说说怎 ...

  9. python 邮件基础篇

    python 操作邮件,不是很方便,说实话还不是理解的特别透彻,这次想把自己碰到的东西总结下来 邮件有imap,pop,imap协议,这次使用的是imap4协议,主要用了imap4和mail类, 代码 ...

  10. 深入理解DOM事件机制系列第一篇——事件流

    × 目录 [1]历史 [2]事件冒泡 [3]事件捕获[4]事件流 前面的话 javascript操作CSS称为脚本化CSS,而javascript与HTML的交互是通过事件实现的.事件就是文档或浏览器 ...