zoukankan      html  css  js  c++  java
  • Android Acitivity 生命周期

    Fragment 的生命周期:

    Android Fragment 生命周期及其API使用(建议使用自定义View替换Fragment)

    Activity的生命周期:

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

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

        Activity -> onFreeze() -> onPause()

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

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

        Activity -> onFreeze() -> onPause() -> onStop() -> Maybe -> onDestroy()

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

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

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

        Activity  -> onPause() -> onStop()  -> onDestroy()

    注意:当前Activity弹出的dialog则不会执行Activity任何生命周期中的方法,只有其它Activity弹出了Dialog或者拦住了当前的Activity才会执行onPause() 

    当电话来电时:

      Activity -> onPause(), 如果onPause()的时候,用户打开了一个“联系人”,做了操作,此时Activity 不可见, Activity -> onStop(),由于Activity和其所在的进程和Task并没有被销毁,Activity的onRestart 和onStart事件被执行,接着Activity的onResume事件被执行,Activity又被呈现给了用户。

    用户这次使用完后,按Back键返回到桌面,A的 onPause, onStop被执行,随后A的onDestroy被执行,由于当前Task中已经没有任何Activity,A所在的Process的重要程度被降到很低,很快A所在的Process被系统结束。

  • 相关阅读:
    不会全排列算法(Javascript实现),我教你呀!
    驰骋页面,谁主沉浮-也谈清除浮动
    你不知道的parseInt
    Javascript函数重载,存在呢—还是存在呢?
    在这个看脸的世界,该如何优雅的创建JS对象
    Python 函数的使用小结
    Python 集合(set)的使用总结
    Python 文件操作
    python 中字典的操作(增、删、改、查)
    python 中list的操作(循环、切片、增、删、改、查、反转、排序)
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/4845272.html
Copyright © 2011-2022 走看看