700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android:Activity生命周期

Android:Activity生命周期

时间:2021-12-21 20:26:03

相关推荐

Android:Activity生命周期

独角兽企业重金招聘Python工程师标准>>>

参考: 《第一行代码:Android》 郭霖(著)

Activity所在的栈为后进先出(Last In First Out)结构。

Activity状态

运行状态(S1):

该Activity处于与User交互的状态,即是位于栈顶的Activity。

系统一般不考虑回收该处内存。

暂停状态(S2):

Activity不再处于栈顶(Another activity comes in front of the activity),但仍然是可见的。

系统只有在内存极低时才考虑回收内存。

停止状态(S3):

Activity不处于栈顶&完全不可见(The activity is no longer visible)。

系统会保存该Activity相应的状态和变量,但内存被回收的几率增大,即不能保证该Activity没有被回收。(Process is killed)

销毁状态(S4):

Activity从栈中被移除(调用finish()或点击Back键)。

重点回收该状态下的Activity占用的内存。

Activity生存期

onCreate()

Activity被创建时调用,完成各种初始化操作。

onStart()

Activity由不可见(invisible)变为可见(invisible)时调用。

onResume()

Activity准备好与User交互时调用,此时activity一定位于栈顶(S1).

onPause()

调用了其他Activity(不再位于栈顶),关键数据会被保存,但仍处于可见状态(visible, S2).

onStop()

Activity变为不可见(invisible)时调用(S3)。

onDestroy()

Activity被销毁前调用(S4)。

onRestart()

Activity由停止状态变为运行状态前调用(S3→S1,即不可见→可见)。

由于onStop()时Activity的内存可能已经被回收,所以在调用onStart()变为可见前要调用onRestart()作准备。

补充

除了onRestart()外,其余生存期为一一对应关系

onCreate() vs onDestroy()

onStart() vs onStop()

onResume vs onPause()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。