码迷,mamicode.com
首页 > 其他好文 > 详细

Back Stack与Activity

时间:2016-01-05 07:15:29      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

激活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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!