Android开发艺术探索——————要点总结

本文深入探讨了Android中Activity的生命周期,特别是在配置变化时的行为,以及如何通过onSaveInstanceState和onRestoreInstanceState方法保存和恢复状态。此外,还详细解释了四种启动模式:standard、singleTop、singleTask和singleInstance,以及TaskAffinity参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Activity异常情况的生命周期:

默认情况下,Activity不做特殊处理,当系统配置发生改变后,Activity会被销毁并重建 。由于Activity是在异常情况下终止的,系统会调用onSaveInstanceState来保存当前Activity的状态(在onStop之前)。当Activity被重新创建后,系统会调用onRestoreInstanceState(Activity被系统回收后重建才会调用该方法,在onStart之后),并把Activity销毁时的onSaveInstanceState方法所保存的Bundle传递给onRestoreInstanceState和onCreate方法。

不想让屏幕旋转时重建, Android:configChanges="orientation" ,旋转后调用onConfigurationChanged方法。

 

Activity的启动模式:

standard :标准模式,每次启动一个Activity都会重新创建一个新的实例。

singleTop:栈顶复用模式, 如果新Activity已经位于任务栈顶,此Activity不会被创建,同时onNewIntent方法被回调。

singleTask:栈内复用模式,单实例模式。只要Activity在一个栈中存在,那么多次启动此Activity都不会重新创建实例,系统回调其onNewIntent方法。系统会先寻找A想要的任务栈,然后创建A的实例。

singleInstance:除具有singleTask特性外,此模式的Activity只能单独位于一个任务栈。

TaskAffinity:任务相关性,这个参数表示了一个Activity所需要的任务栈的名字。默认情况,Activity所需的任务栈的名字为应用的包名。

 

转载于:https://www.cnblogs.com/kyun/p/10044938.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值