《Android 开发入门与实战(第二版)》——6.2节Activity的生命周期
本节书摘来自异步社区《Android 开发入门与实战(第二版)》一书中的第6章,第6.2节Activity的生命周期,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区“异步社区”公众号查看
6.2 Activity的生命周期
Android 开发入门与实战(第二版)
Activity的重要性在Activity介绍中已经大概描述了,为了更好地使用Activity,接下来我们介绍一下Activity的生命周期。
在讲Activity生命周期之前,我们先看图6-1(Activity的生命周期)。
从图6-1中我们可以看到Activity的生命周期其实就是由以下函数组成的。
public class Activity extends ApplicationContext{ protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }
通常情况下Activity生命周期的动作如下所示。
onCreate():该方法是在Activity第一次被创建的时候调用的。这个方法通常用来做一些常规的设置,比如创建视图,绑定数据到list等。这个方法还提供了一个Bundle对象来保存先前冻结的状态,当然,前提是你之前已经将你需要冻结的内容放到了Bundle中。之后总是会调用onStart()方法,并且在调用了这个方法之后,是不能被系统意外杀死的。
onRestart():从名字就能看出,在Activity被停止后,如果需要重新启动,则会调用这个方法,之后会调用onStart()方法。
onStart():该方法在Activity将要对用户可见时调用,如果Activity将显示在前台,接着调用onResume(),如果Activity将变隐藏,则调用onStop()方法。不能被系统意外杀死。
onResume():该方法是在Activity将开始于用户交互时被调用的,这个时候的Activity在Activity栈中处于最顶部,之后总是调用onPause()方法。也不能被系统意外杀死。
onPause():该方法是在系统准备恢复其他Activity时调用,这个方法通常用来提交未保存变化的持久化数据,停止动画和其他可能消耗CPU的操作等。由于在这个方法返回之前,下一个Activity是无法被恢复的,所以这个方法的实现不宜做耗时的操作。如果调用了该方法之后,Activity又打算重新返回到前台,则会调用onResume()方法,如果Activity变得对用户不可见,则调用onStop()方法。在系统极端低内存的情况下可以被杀死。
onStop():该方法在Activity不再对用户可见时调用,因为其他Activity已经恢复并且正在覆盖当前Activity。这个可能发生在当一个新的Activity正在启动,而已经存在的Activity又被带到了这个Activity的前面,或者这个Activity正在被销毁。调用了这个方法后,可能会被系统意外地杀死。
onDestory():该方法是在Activity被销毁之前最后调用的一个方法,这个可能发生在Activity被完成的时候。
上述提到的可能被系统意外杀死或者不能被杀死,是指Android系统在运行时,会在内存极端低下的情况下有选择性地杀死某些“不必要”进程以达到缓解内存不足的情况。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《iOS 6核心开发手册(第4版)》——2.8节秘诀:创建可点按两次的分段控件
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.8节秘诀:创建可点按两次的分段控件,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.8 秘诀:创建可点按两次的分段控件iOS 6核心开发手册(第4版)UISegmentedControl类表示一个多按钮的界面,其中用户可以从一组按钮中做出选择。该控件提供了两种使用风格。在正常的单选按钮风格模式下,一旦选择了一个按钮,就会保持选择它。用户可以点按其他的按钮,但是他们不能通过重新点按他们现有的选择来生成新的事件。另一种瞬时的风格允许用户根据需要点按每个按钮许多次,但是不存储关于当前所选项目的状态。它不会突出显示最近的选择。 秘诀2-4构建了一种混合方法。它允许用户查看他们当前选择的选项,以及根据需要重新选择该选项。这并不是分段控件正常的工作方式。不过,有时你可能希望通过重新选择生成一个新的结果(比如在瞬时模式下),同时形象地显示最近的选择(比如在单选按钮模式下)。 不幸的是,用于创建这种想要的行为的“明显的”解决方案不会工作。不能添加用于检测UIControlEvent...
- 下一篇
《iOS 6核心开发手册(第4版)》——2.9节处理选项开关和步进器
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.9节处理选项开关和步进器,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.9 处理选项开关和步进器iOS 6核心开发手册(第4版)UISwitch对象提供了一个简单的启用/禁用开关,允许用户选择一个布尔值(对于大多数非英语地区,选项开关国际化为1/0)。选项开关对象包含单个(可设置的)值属性,称为on。它将返回YES或NO,这取决于控件的当前状态。可以以编程方式更新选项开关的值,其方法是直接更改属性值或者调用setOn:animated:,其中后者提供了一种方式以动画展示所做的更改。 在这个示例中,当选项开关更新时,它会更改视图控制器的标题。IB提供了相对较少的选项用于处理选项开关。可以启用它并设置其初值,但是除此之外,没有太多的方面可以自定义。当用户调整选项开关时,它会产生一个值改变事件。 注意:不要把UISwitch实例命名为switch。回忆可知,switch是一个保留的C关键字,它用于条件语句。许多iOS开发人员由于忽视了这一点而犯错误。UIStepper类...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19