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()中释放可能导致内存泄漏的资源是非常重要的。(自己主动清理要比系统扫荡式的清理安全得多)。

  • 相关阅读:
    SQL Server 存储过程
    SQL数据类型介绍
    XML文件操作指南
    C# 程序集 与 反射
    详解C#中System.IO.File类和System.IO.FileInfo类的用法
    C# 之泛型详解
    C#中HashTable的用法示例2
    C#中HashTable的用法示例1
    DEDECMS5.7 首页和栏目页调用文章按权重排序
    linux创建用户,指定组
  • 原文地址:https://www.cnblogs.com/yzmb/p/5513208.html
Copyright © 2011-2022 走看看