Android Activity Lifecycle(Finish)

本文详细分析了Android Activity的生命周期,包括onCreate、onStart、onResume、onPause、onStop和onDestroy等关键方法的执行顺序和应用场景。在onPause中应快速保存数据,onStop时activity变得不可见,onDestroy可能是被系统回收前的最后一步。文章强调了在特定生命周期方法中进行适当操作的重要性,如onDestroy中取消正在运行的ProgressDialog,以避免异常。
摘要由CSDN通过智能技术生成

    广大博友,看过后帮忙顶顶,谢谢大家!!!

    转载请注明: http://blog.csdn.net/richway2010/archive/2011/06/29/6574987.aspx

   【博主:各位博友,网友们,大家网上好!欢迎光临本博客。 欢迎多多交流,多提意见,互相学习,互相进步,我们的口号是:好好学习,天天向上。】

    看过很多关于activity生命周期的文章,大多都只是讲明一个图例流程,并没有把其中原理讲清楚,下面加上个人理解,分析一下它的生命周期。

    跟其他手机平台的应用程序一样,Android的应用程序的生命周期是被统一掌控的,也就是说我们写的应用程序命运掌握在别人(系统)的手里,我们不能改变它,只能学习并适应它。
    简单地说一下为什么是这样:我们手机在运行一个应用程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占用太多资源,至少要保证电话功能吧,所以资源不足的时候也就有可能被干掉。

 

看图:

 

对上图分析:

1、启动Activity执行的方法:onCreate()-->onStart()-->onResume()方法,此时程序处理运行状态。

     方法原理:

     onCreate: 在这里创建界面,做一些数据的初始化工作
     onStart: 到这一步变成用户可见不可交互的
     onResume: 变成和用户可交互的,(在activity栈系统通过栈的方式管理这些个Activity的最上面,运行完弹出栈,则回到上一个Activity)

2、结束Activity执行的方法:onPause()-->onStop()-->onDestory()方法,此时程序被销毁。

     方法原理:

     onPause:到这一步是可见但不可交互 的,系统会停止动画等消耗CPU 的事情,从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onResume里读出来,注意:这个方法里做的事情时间要短,因为下一个activity不会等到这个方法完成才启动
     onstop:变得不可见 ,被下一个activity覆盖了
     onDestroy:这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。

3、onPause()-->onResume转化原理

Activity可以经常性地在resumed和paused状态之间切换,当activity处理运行状态时,有新的activity运行到前台,此时原activity将被压入栈,当前activity处于栈顶。

 

4、闲置很长时间的activity-->到运行状态过程

     onStop()-->onRestart()-->onStart()-->onResume()-->activity running

    

 

注:处于onPause,onstop, onDestroy,三种状态下 activity都有可能会因为其它应用需要用内存,而被系统干掉。其它状态不会结束。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值