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. 搭建前端私有npm杂记

    随着前端队伍越来越壮大,项目间共享代码就变得尤为重要.常用的框架/类库没必要在每个项目都放一份,团队内部产出的公共模块也需要有合理的共享机制.现在,用npm管理前端代码已经是业界趋势.楼主尝试用私有n ...

  2. C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword)

    C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword) +BIT祝威+悄悄在此留下版了个权的信息说: C#申请一 ...

  3. Mac 软件篇

    对于美好事务的追求无论何时都不算晚. ** 文章内容来着我整理的fetool,以下内容可能更新不及时 ** Mac 下的软件那么多,又是免费又是付费,应该怎么选呢?我来分享下我的推荐列表,推荐的优先级 ...

  4. CSS效果集锦(持续更新中)

    高亮光弧效果 使用CSS3实现的一个高亮光弧效果,当鼠标hover到某一个元素上时,一道光弧从左向右闪过,效果如下: 代码如下: <!DOCTYPE html> <html lang ...

  5. C语言 · 打印1-200之间的素数

    素数定义:除了1和本身再无其他整数可被其本身整除的数称为素数,也称质数. 举一例子打印出1-200之间所有的素数: #include<stdio.h> #include<math.h ...

  6. UITest 单元测试常用的断言

    XCTFail(format…) 生成一个失败的测试: XCTFail(@"Fail"); XCTAssertNil(a1, format...) 为空判断, a1 为空时通过,反 ...

  7. windows7查看最近使用记录

    1.看计算机在哪天运行过~运行了多久! C:\Windows\SchedLgU.txt 2.看你最近运行过什么程序: C:\Windows\Prefetch 3.看你最近打开过什么文件(非程序)和文件 ...

  8. BUG级别定义标准

    通过图片另存为 或者 放大浏览器倍率 查看.

  9. selenium结合最新版的sikuli使用

    sikuli安装,下载sikulixsetup-1.1.0.jar,地址:https://launchpad.net/sikuli/sikulix/1.1.0 在装有Java环境的机器上直接双击jar ...

  10. react-native环境搭建

    目标平台 Android 开发平台 windows 开发环境安装建议:由于开发环境存在差异,建议参照react官网 或者react中文网 安装, react-native -- 在Windows下搭建 ...