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

     
     
     
    Activity所在的栈为后进先出(Last In First Out)结构。
     
    Activity状态
    1. 运行状态(S1):
      • 该Activity处于与User交互的状态,即是位于栈顶的Activity。
      • 系统一般不考虑回收该处内存。
    2. 暂停状态(S2):
      • Activity不再处于栈顶(Another activity comes in front of the activity),但仍然是可见的。
      • 系统只有在内存极低时才考虑回收内存。
    3. 停止状态(S3):
      • Activity不处于栈顶&完全不可见(The activity is no longer visible)。
      • 系统会保存该Activity相应的状态和变量,但内存被回收的几率增大,即不能保证该Activity没有被回收。(Process is killed)
    4. 销毁状态(S4):
      • Activity从栈中被移除(调用finish()或点击Back键)。
      • 重点回收该状态下的Activity占用的内存。
     
    Activity生存期
    1. onCreate()
      • Activity被创建时调用,完成各种初始化操作。
    2. onStart()
      • Activity由不可见(invisible)变为可见(invisible)时调用。
    3. onResume()
      • Activity准备好与User交互时调用,此时activity一定位于栈顶(S1).
    4. onPause()
      • 调用了其他Activity(不再位于栈顶),关键数据会被保存,但仍处于可见状态(visible, S2).
    5. onStop()
      • Activity变为不可见(invisible)时调用(S3)。
    6. onDestroy()
      • Activity被销毁前调用(S4)。
    7. onRestart()
      • Activity由停止状态变为运行状态前调用(S3→S1,即不可见→可见)。
      • 由于onStop()时Activity的内存可能已经被回收,所以在调用onStart()变为可见前要调用onRestart()作准备。
    补充
    • 除了onRestart()外,其余生存期为一一对应关系
    • onCreate() vs onDestroy()
    • onStart() vs onStop()
    • onResume vs onPause()
     
     
  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/lawrencechen/p/4825094.html
Copyright © 2011-2022 走看看