Android Activity生命周期分析

来源:互联网 发布:电影台词拼接软件 编辑:程序博客网 时间:2024/05/18 01:04

1.Activity官方介绍

开心的事:谷歌开发者中国不用被墙了。

官方API:
https://developer.android.google.cn/reference/android/app/Activity.html

(1)Activity定义:

An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with setContentView(View).

Activity是用户能够做的关注的事情,几乎所有的Activity都与用户交互,因此Activity类负责创建一个window,可以用setContentView方法放置UI。

(2)Activity特点:

1.系统中Activity作为一个Activity栈进行管理。当一个新Activity开始时,它被放置在栈的顶端,并变成正在运行的Activity,上一个Activity放在栈的下面,将不会再回到前台直到新的活动退出。

2.如果activity在屏幕的前台(在堆栈的顶部),它是正在运行的。

3.如果Activity已经失去焦点,但仍然可见(新的非完整尺寸或透明Activity在Activity的顶端),则会paused,暂停的活动是完全活动的(它保持所有的状态和成员信息和保持附加到window管理器),但是在极低内存下会被杀死。

4.如果一个activity完全被另一个activity遮挡,则会stopped。它任然保持所有状态和成员信息,但是,它不再是用户可见的,所以窗口被隐藏,并且其他地方需要内存时,它通常会被系统kill。

5.如果一个Activity是paused或stopped,系统可以通过请求它完成从内存中删除activity,或简单的杀死其进程。当它再次显示给用户时,必须重启和恢复之前的状态。

2.Activity方法和生命周期

(1)onCreate(): 当Activity第一次创建时调用,通常在这个函数中完成Activity的初始化操作,如设置布局、初始化视图、绑定事件等;

(2)onStart() :在onCreate()函数调用之后使用,此时Activity还处在不可见状态,下一个状态就是变得可见,onStart() 在可见之前被调用;

(3)onResume() :Activity变为可见时调用,执行完onResume之后,Activity就会请求AMS渲染它所管理的视图。此时的Activity一定位于返回栈的栈顶,并且处于运行状态;

(4)onPause():这个函数在系统准备去启动或恢复另一个activity时调用,也就是在Activity即将从可见状态变为不可见时,一般将一些消耗CPU的资源释放掉,以及保存一些关键数据;

(5)onStop() :这个函数在Activity完全不可见时调用。它和onPause()区别在于,如果新启动的Activity是一个对话框式Activity时,那么onPause函数会执行,onStop()不会执行;

(6)onDestroy() : 这个函数在Activity被销毁之前调用,之后Activity的状态将变为销毁状态;

(7)onRestart() :这 个函数在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了;

从onCreate()函数到onDestroy()函数运行时期就是一个完整的生命周期,onCreate()完成各种初始化动作,onDestroy()完成释放内存的操作。

activity在onResume()函数和onStop() 函数之间是可见的。

具体看生命周期图谱。
这里写图片描述

0 0
原创粉丝点击