激活Activity与压栈
当Activity被激活时,它在Back Stack中压栈,成为栈顶Activity,则被显示且获得焦
点。
·以第一次启动某个应用程序为例:
大多数的Task以HOME界面,或应用程序界面作为起点,当用户击应用程序图标时,Task
被创建且置于前台,系统检索到入口Activity后在Back Stack中压栈,由Task是新创建的,
则此时Back Stack中只有一个
Activity,入口Activity即是栈顶Activity也是栈顶Activity,所以入口Activity被显示且
获得焦点。
保存Activity的状态
当同一个Task中,出现新的Activity压栈时,或当前Task被整体的闲置于后台时,原Task
栈顶的Activity
被停止时的状态将被保存。
例如:在某个应用程序的登录界面中,输入了用户信息,然后被来电中断,当通话结束后,
原登录界面中已经输入的信息依然存在。
注意:由于系统可能因为资源不足而销毁一些Activity,所以并不能保证当Task被置于后台
之后,再次回到前台时Activity的状态依然存在,因为很可能整个Activity都已经不存在了
.
Activity的销毁与出栈
当用户点击"Back"键时,栈顶的Activity出栈,一旦出栈,则该Activity被终止,且资源被
回收,即销毁。
Activity的状态与Back Stack
在Back Stack 中,Activity的状态可能为:
当新激活的Activity压栈,则成为栈顶Activity,该Activity处于运行态;
当用户点击“Back”键,栈顶Activity出栈,且被销毁,处于终止态;
在栈内,且不处于栈顶的Activity,可能处于暂停态,停止态,终止态。
Activity的生命周期方法
当激活Activity时:
配置为standard模式时,经历:
onCreate()->onStart()->onResume()
如果Activity已经置于前台,且不需要创建实例(singleTop模式,singeleTask模式,
singleInstance模式),则经历:
onPause()->onResume()
如果Activity已经被置于后台,且不需要创建实例(例如singleTask模式,singleInstance
模式),则经历:
onRestart()->onStart()->onResume()
强制出栈的Activity都会经历onDest``roy().
Back Stack与Activity
原文:http://blog.csdn.net/wei_chong_chong/article/details/50458882