Activity的生命周期

Activity 是这样一个程序组件,它为用户提供一个用于任务交互的画面。例如,拨打电话,拍照,发邮件。或者查看地图。每一个activity都被分配一个窗口。在这个窗口里,你可以绘制用户交互的内容。 这个窗口通常占满屏幕,但也有可能比屏幕小,并且浮在其它窗口的上面。

一个应用程序通常由多个activity组成,它们彼此保持弱的绑定状态。典型的,当一个activity在一个应用程序内被指定为主activity, 那么当程序第一次启动时,它将第一个展现在用户面前。为了展现不同的内容,每一个activity可以启动另外一个。 每当一个新的activity被启动,那么之前的将被停止。但系统将会把它压入一个栈(“back stack”即后退栈),当一个新的activity启动,它将被放到栈顶并获得用户焦点。后台栈遵循后进先出的栈机制。所以当用户完成当前页面并按下返回按钮时,它将被pop出栈(并销毁),之前的activity将被恢复。 (关于后退栈的更多讨论在任务和后退栈

当一个activity因为另一个activity的启动而被停止,那么其生命周期中的回调方法,将会以状态改变的形式被调用。 activity通过它自身状态的改变可以收到多个回调方法。当系统创建,停止,恢复,销毁它的时候。并且每个回调方法都给你做相应处理工作的机会。 例如,当停止的时候,你的activity应当释放比较大的对象,例如网络连接,数据连接。当你的activity恢复时,你可以请求必须的资源并恢复一些被打断的动作。 这些状态事务的处理就构成了activity的生命周期。

接下来将讨论如何搭建和使用activity,完整讨论activity的生命周期是怎么工作的,这样你就可以合理地管理不同activity状态间的事务处理

    1. Activity的启动和关闭

      1.  Activity的启动

startActivity(intent):启动其它的Activity。 

startActivityForResult(intent, requestCode):启动新Activity并得到返回结果

      1. Activity的关闭

finish():结束当前Activity。 

finishActivity(int requestCode):结束当前Activity并返回结果

    1. Activity的生命周期

Activity的生命周期包括4种状态,3个生命周期循环,7个生命周期函数。

                                                                          图2.  1

实际上就是讲解下面这一张图

                                            

                                                                                   图2.2

 

    1. 四种状态

  1.  

    1.  

运行状态

当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于运行状态;如此时的FirstActivity正处于运行状态。

                                                                

                                                                                          图 2.3

 

暂停状态

当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Activity并不是铺满整个手机屏幕),此时处于暂停状态,如果图中的FisrtActivity就处于暂停状态:

                                                         

                                                                                       图2.4

 

停止状态

当Activity被其他Activity完全遮挡,此时此Activity对用户不可见,此时处于停止状态;当我们在图2.3点击“启动SecondActivity”,此时的SecondActivity非透明的形式,全部覆盖FirstActivity,那么此时的FirstActivity就处于停止状态。

                                                        

                                                                                        图2.5

销毁状态

当Activity由于人为或系统原因(如低内存等)被销毁,此时处于销毁状态;

                                                        

                                                                                        图2.6

 

当我们在图2.6中点击退出,我们在点击退出的事件中调用了this.finish(),那么此时的FirstActivity就处于销毁状态。

四种状态之间的转换图

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值