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  生命周期 各个时期会被系统回调的方法。

最新文章

  1. GitLab版本管理
  2. Python--Argparse学习感悟
  3. ubuntu安装jdk
  4. QT中给各控件增加背景图片(可缩放可旋转)的几种方法
  5. jsp、js分页功能的简单总结
  6. Power string(poj 2406)
  7. Entity - 使用EF框架进行增删改查 - 数据库先行
  8. 利用this属性实现点击按钮变色.选中效果
  9. 剑指Offer-- 二叉搜索树的后序遍历序列判断
  10. link标签和css引入方式
  11. word表分页表头
  12. C语言一维数组定义及引用时括号[]内容
  13. npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法
  14. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(四)数据库安装(单节点)
  15. python学习笔记_week11
  16. HTML标签转义方法
  17. spring boot 2.0.3+spring cloud (Finchley)6、配置中心Spring Cloud Config
  18. Mysql5.7主主互备安装配置
  19. python爬虫beautifulsoup4系列2
  20. 小米范工具系列之一:小米范 web查找器

热门文章

  1. 使用 SailingEase WinForm 框架构建复合式应用程序(插件式应用程序)
  2. 链表&amp;LRU
  3. .NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]
  4. Cygwin/babun install telnet
  5. css浮雕效果
  6. Intellij IDEA 13.1.3 创建Java Web项目
  7. Nginx配置文件解析
  8. jquery颜色选择器
  9. 谈谈php里的DAO Model AR
  10. 推荐21款最佳 HTML5 网页游戏