zoukankan      html  css  js  c++  java
  • (转)Android Activity生命周期

    两分钟彻底让你明白Android Activity生命周期(图文)!

    http://blog.csdn.net/android_tutor/article/details/5772285

    基础总结篇之一:Activity生命周期

    http://blog.csdn.net/liuhe688/article/details/6733407   注:个人感觉这篇文章最为详细

    Activity生命周期图

    1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

    2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

    3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

    4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

    5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

    6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

    7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。


    Activity的生命周期之Stopping(停止) 和 Restarting(重启)

    http://www.jcodecraeer.com/a/anzhuokaifa/developer/2013/0715/1440.html

    下面的内容来自:http://www.jcodecraeer.com/a/anzhuokaifa/developer/2013/0715/1440.html

    停止(stopping)和重启(restarting)是activity生命周期中很重要的过程,只有恰当的处理停止和重启过程才能让用户认为你的app始终是连贯的运行着的,在这两个过程之间 用户并不会觉得自己的操作被中断过。以下是stopping和restarting这两个过程发生的典型场景:

    • 用户打开最近使用的app窗口(4.0以上版本点击三个虚拟键的第三个键),从当前的app切换到其他app,那么切换之前的原本获得焦点的app 就被stop了。如果用户再次从launcher中点击原来的app图标或者从最近使用的app窗口窗口中回到你的activity,那么原来的activity就重启(restarts)了。

    • 用户在在一个activity中调用第二个activity,那么第一个activity就处于stop状态,第二个activity被创建。如果这时用户点击back 那么第一个activity就再次重启(restarted)。

    • 用户在使用app的过程中接到电话。

       

    译者注:停止(stopping)和重启(restarting)的翻译似乎会引起误解,这里的重启并不是退出程序,而是指重新调用。但是根据字面上来看,确实是重启的意思。

    Activity提供了两个生命周期函数onStop()和onRestart()来处理停止和启动这两个过程。 不同于pause状态的activity,stopped强调这个activity是完全不可见的,用户的焦点转移到了独立的另一个activity之上,而pause状态中 activity只是部分不可见,被暂停了,暂停他的视图很可能还是依附于这个activity之上。

    注:因为系统在activity stopped的时候内存中还保持这activity的实例,所以对于简单的程序而言,你即使不实现onStop()onRestart()方法,对于比较简单的activity来说 ,停止和重启这两个过程都会顺利的执行,且程序不会出现什么错误。你只需注意在onStop的时候释放掉暂时不用的资源就ok了。

    图 1.当用户离开activity的时候,系统调用onStop()来停止这个activity (1). 如果用户在这期间回到activity,系统调用onRestart()方法 (2), 然后马上调用onStart()(3) 接着调用onResume()(4). 注意到不管是何种情况导致activity处于stop状态,系统都会在onStop()之前调用onPause()

    Stop 你的 Activity

    当activity收到系统对onStop()方法的调用,activity将不可见,并且你应该释放掉用户在此时不需要的所有资源。 如果有必要恢复内存,系统可能会销毁(通过onDestroy()方法)处于stop状态的activity,更极端的情况是,系统不调用你activity的 onDestroy(),直接杀死你的app进程,因此在onStop()中释放可能导致内存泄漏的资源是非常重要的。(自己主动清理要比系统扫荡式的清理安全得多)。

  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/yzmb/p/5513208.html
Copyright © 2011-2022 走看看