Activity的生命周期及状态

Activity的三种状态:

1.resumed:指当前Activity在屏幕前台(能被用户看的见)并且拥有用户焦点(用户可以与之交互,点击上面的按钮等)。

2.paused:指当前Activity在屏幕前台,但是不拥有用户焦点(用户不能点击该界面的控件)。

3.stopped:指当前Activity完全被遮蔽,对用户不可见。

下面用三张图分别来表示resumed、paused、stopped:


在paused的状态下,该activity是存活的,在内存中被保留,他维护所有状态和成员信息,并依然依附窗口管理器(window manager),但在系统内存极低的时候会被杀死。

stopped状态下,该activity也是存活的,他维护所有状态和成员信息,但不依附窗口管理器,并在内存极低时,被系统杀掉。

接下来举个例子:

如果我们project中,总共有三个Activity,分别为a、b、c。每个activity上面都有个按钮,点击之后分别进入到b、c,a为mainActivity。然后再分别按两次返回键。

那么在系统堆栈中是这样子的过程

Activity的生命周期及状态_第1张图片

当然有些应用的需求是想让整个过程中,堆栈中只有一个属于该app的activity,即一个时间段内,至多有一个activity(a,b,c不能共存),那么可以去AndroidManifest中设置activity的launchmode属性,它有四种属性分别是standard(默认)、singleTop、singleTask、singleInstance。具体的可以看该篇博客,我觉得已经讲的非常清楚,不懂的人可以在我博客下面留言。

http://blog.csdn.net/tiancizhenai/article/details/7037787

你可能感兴趣的:(android,内存,栈)