【安卓】开发理解版——Activity生命周期、启动模式

1、Activity的生命周期

注意:Activity可以理解成【界面】

或者理解:
安卓应用就相当于一本书,Activity就相当于书的每一页,Fragment就相当于可以粘贴上去的便利贴。

1、理解Activity的生命周期:
Activity的生命周期其实就是7个回调函数,这些函数由系统自行调用,就有点像C语言的main函数。其中六个两两对应,所以我们可以分为3+1形式记忆和理解:

第1对:
onCreate():Activity类的对象首次被创建时(会调用该对象一次),由系统自动调用。并标记为“已创建”
onRestart():标记为“已创建”的Activity类的对象再次被调用时,由系统自行调用此函数。其实就是从后台–>前台就会出现这种情况。

第2对:
onStart():Activity对象正在被调用的前夕,不论是刚刚被创建还是复用
onResume():Activity对象正在被调用的时候(之后)显示出来,不论是刚刚被创建还是复用

第3对:
onPause():Activity对象暂停使用前夕
onStop():Activity对象暂停使用时

最后一个孤寡老人:
onDestroy():Activity对象被正常回收前夕。

理解它的生命周期有什么用?

确定你在什么地方写代码:
比如一些初始化的操作你应该写在onCreate函数中,保证数据得到有效传递和变量得到有效赋值。
一些回收操作应该在onDestroy函数中进行等。

比如:
当你第一次打开应用的时候:
onCreate——onStart—是否可见—onResume

当你按下home键返回桌面时:
onPause—是否位于前台—onStop
此时不应调用代码进行过多/耗时操作

当你从桌面重新进入时:
onRestart——onStart—是否可见—onResume

当你按下返回键退出应用时:
onPause—是否位于前台—onStop——onDestroy

2、4种启动模式:launchMode

请注意,这里是Activity的启动模式:意思就是,当你需要启动一个Activity是,采用什么样的启动方式。而且,Activity是采用【任务栈】的方式存储和管理Activity的,【栈】就相当于一个水杯,上开下封。也就是说,启动模式就是往这个水杯里”倒“ Activity的方式。

1、默认情况下:standard【】
不管【栈】——即杯子,里有没有本Activity,都重新创建一个。
显然,这种方式就有点呆了,如果【栈】中已经有一个可以用,你还重新创建一个Activity实例,那就是浪费时间空间。

2、顶部复用模式:singleTop【FLAG_ACTIVITY_SINGLE_TOP】
如果【栈】顶有,就拿来用
否则才创建新的实例

3、栈内复用模式:singleTask【FLAG_ACTIVITY_NEW_TASK】
如果【栈】中有,就拿来用,
否则才创建新实例

4、单独任务栈模式:singleInstance【】
使用独立的【任务栈】管理一个活动。

怎么用:

个人认为一般用第3种(除非有其他需求)。但是最号还是根据自己的需求进行分析。

1、AndroidMenifest的Activity层:

android:launchMode=“模式名”

2、intent中通过flag值指定:优先级最高

Intent intent=new Intent();
intent.addFlags(Intent.xxx)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值