Back Stack与Activity

激活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().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值