Android的生命周期和启动模式

来源:互联网 发布:原油价格数据在哪里查 编辑:程序博客网 时间:2024/06/05 13:25

一、Activity的生命周期

1.1典型情况下的生命周期

1.1.1生命周期的分析

正常情况下,Activity的常用生命周期就只有一下的7个,并附图
(1)onCreate :表示Activity创建,这是生命周期的第一个方法。在这个方法中可以做一些初始工作,比如setContentView去加载的布局资源,初始化Activity的数据。
(2)onStart:表示Activity正在被启动,即将开始。这个时候已经可见Activity ,只是没有获得屏幕的焦点,不能与用户交互。
(3)onResume:表示Activity已经可见,并且获得屏幕焦点,可以进行交互。
(4)onPause:表示Activity的暂停状态,失去屏幕焦点,可见不可交互。
(5)onStop: 表示Activity即将停止,可以在这个方法中做一些回收工作或者资源的释放,注意不猛太耗时。
(6) onDestroy:表示Activity即将被销毁,这是Activity生命周期中的最后一个回调方法,在这里我们可以做最终的回收工作以及资源释放。
(7) onResume:表示Activity正在重新启动,是Activity 从不可见到可见,启动的要求是当前的Activity执行了onPause和onStop,例如用户按Home键之后从新返回当前APP,或者启动一个新的Activity,按Back键返回时调用这个方法。

1.1.2常见的Activity应用场景的生命周期的分析:

(1)Activity第一次启动:onCreate>onStart>onResume。
(2)打开一个新的Activity:onPause>onStop。
(3)返回Activity:onRestart>onStart>onResume。
(4)按Back键:onPause>onStop>onDestroy。
(5)Activity被系统回收:生命周期的回调与(1)一样。注意只是生命周期一样,不代表说有过程都一样。
总结Activity的生命周期:从整个生命周期来看,onCreate和onDestroy是相对的,分别表示Activity的创建还有销毁,并且只可以调用一次。从Activity的可见方面来说onStart和onStop是相对的,随着用户的操作或者屏幕的电联和熄灭,这两个方法可能会被调用多次。从Activity是否在前台来说:onResume和onPause是相对的随着用户的操作或者屏幕的电联和熄灭,这两个方法可能会被调用多次。

1.2异常情况下的生命周期

二、Activity的启动模式  

1.1Activity的LaunchMode
(1)standard:标准模式,系统默认的模式,每次启动一个Activity都会重新创建一个实例,不管这个实例是否已经创建,一个任务栈可以有多个实例。在这启动模式下我们可以一直创建同一个Activity,再按Back键的时候需要逐一返回。



(2)singleTop:栈顶复用模式,这种模式下,如果你的Activity已经在栈顶了,那么Activity不会被重新创建,同时它的onNewIntent的方法会被调用,同个这个方法的参数可以取出当前请求的信息。注意这个Activity的onCreate,onStart方法不会被调用,因为它并没有改变。但是如果这个Activity已经存在,并且不再栈顶,那么它还是会被重新创建。




(3)singleTask:栈内复用模式,这是一种单实例模式,这种模式下,只要Activity在一个栈中存在,那么多次启动这个Activity都不会重新创建,与singleTop一样,系统也会回调其onNewIntent。注意调用这个Activity时,这个Activity的以上的Activity都会被销毁。





(4)singleInstance:单实例模式, 这是一种加强的singleTask模式,除了具有singleTask的所有特性之外,它有自己独特的特点,只可以单独存在于单独的一个任务栈中。换句话说,系统在启动这个Activity时,首先会创建一个单独的任务栈,然后在这个任务栈中将我们选中的Activity单独放在这个任务栈中。由于栈内复用的特性,在之后的创建中,不会再重新创见这个Activity,除非这个任务栈被系统销毁掉。






那关于Activity的分析就到这里了,可能写的并不完善,希望大家不要介意,喜欢请点赞,如果不喜欢可以通过评论的方式告诉我,进行相应的修改,蟹蟹!!






0 0
原创粉丝点击