Activity声明周期总结

本文详细介绍了Android中Activity的生命周期,包括各个阶段的方法如onCreate()、onStart()、onResume()等的作用及其调用时机,并解释了如何通过这些方法来管理Activity的状态。
摘要由CSDN通过智能技术生成
一、利用Activity 生命周期
1、使用onSaveInstanceState()将Activity状态保存至Bundle中,最好在onPanse()方法中进行提交与保存,
当之后重新返回Activity时,Bundle对象被传入onCreate()方法中;

2、你也可以使用onRestoreInstanceState()方法在onStart()调用之后读取Bundle对象信息;

3、在Activity栈中,可能存在多个Activity的实例,我们要注意每个Activity的生命周期问题;

4、Acivity替换分为两种:

(1)显示一次永远被“主菜单”界面Activity代替;
使用startActivity()和finish()
(2)Activity跳转可能是暂时的;

使用startActivityForResult()和onActivityResult()


二、Activity 生命周期中的各个方法描述如下:

1、onCreate() 当 Activity 首次创建时调用, 这里通常的工作是创建视图, 绑定数据到列表等。 这个方法还有一个 Bundle 参数, 如果这个 Activity 之前由冻结的状态, 这个状态将包含在里面。 之后, 通常会接着调用 onStart() 方法。

2、onRestart() Activity 已经被停止, 在其被重新开始之前调用。 接下来回调用 onStart() 方法。

3、onStart() 当 Activity 变到用户可见时调用, 接下来如果 Activity 变成不可见的话, 将会调用 onStop() , 否则将调用 onResume() 。

4、onResume() 当 Activity 开始能和用户交互时调用, 此时的 Activity 位于栈顶, 接下来通常会调用 onPause() 。

5、onPause() 当系统准备开始一个新的 Activity 或者重置一个已有的 Activity 时调用。 通常需要在这里进行保存数据、 停止动画以及其它占用 CPU 资源的活动等。 这个方法完成之前, 下一个 Activity 不会继续, 所以这个方法的必须较快的完成。 接下来如果 Activity 又回到栈顶将调用 onResume() , 如果 Activity 变的不可见, 将调用 onStop() 。

6、onStop() 当 Activity 不可见时调用, 如果 Activity 变的可见, 将会调用 onRestart() , 如果 Activity 将销毁, 调用 onDestroy() 。

7、onDestroy() 这是 Activity 被销毁之前最后一次调用, 可能是调用了 Activity 的 finish() 方法, 或者系统要回收资源, 这两者可以通过 isFinishing() 方法进行区别。


三、每一个 Activity 都有四个状态, 它们分别是:

1、当 Activity 位于屏幕的最前面(栈顶),称之为 运行(活动)状态:

2、当 Activity 失去焦点, 但是依旧可见, 比如被非全屏的对话框遮住部分, 称之为 暂停状态 , 暂停的 Activity 依然是活动的, 但是当系统内存严重不足时, 有可能被系统结束;

3、当 Activity 完全不可见时, 称之为 停止状态 , 这时 Activity 依然保持其状态以及成员信息, 不过由于此时 Activity 对用户不可见, 当系统其它地方需要内存时, 经常会被结束;

4、当 Activity 由不可见变成可见时, 称之为 重启状态 , 这时 Activity 必须迅速恢复它以前的状态。

转载地址:[url]http://www.cnblogs.com/beginor/archive/2012/11/12/2766900.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值