第一行代码 学习笔记 活动

本文详细介绍了Android中Activity的生命周期,包括onCreate、onStart、onResume等关键方法的作用及应用场景。此外还解释了如何通过onSaveInstanceState保存和恢复数据,以及不同启动模式的区别。

1.onCreate() 在活动第一次创建的时候调用,可以在此活动中完成初始化操作,比如加载布局,绑定事件等

2.onSrart()  在活动有不可见变为可见的时候调用

3.onResume() 在活动准备和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态

4.onPause() 在系统准备启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键的数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用

5.onStop()这个方法在活动完全不可见的时候调用。

6.onDestroy() 这个方法会在活动被销毁之前调用,之后活动状态变为销毁状态

7.onRestart() 这个方法在活动由停止状态变为运行状态之前调用

android:theme 让dialogActivity使用对话框式的主题。


活动被会收后的数据保存

使用onSaveInstanceState()回调方法  这个方法可以保证在活动被会收之前一定会被调用,因此可以用此方法来解决活动被回收时临时数据得不到保存的问题

onSaveInstanceState()方法会携带一个Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,如putString(),putInt()等,每个方法需要传入两个数据,第一个是键,用于后面从Bundle中取值,第二个参数是真正要保存的内容

恢复数据直接在onCreate()中,onCreate()中也有个Bundle类型的参数。这个参数一般情况下都为Null,但是如果活动被系统回收之前有通过onSaveInstanceState()方法来保存数据的话,这个参数就会带有之前所保存的数据,我们只需要取出来就可以了。   (只限于当前这个活动,如果再打开一个相同的活动,数据不会在新开的活动中出现)


活动的启动模式

可以在<activity>标签指定android:launchMode属性来选择启动模式

standard 默认启动模式  每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置

singleTop 在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动

singleTask 每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例

singleInstance 指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动(其实如果singleTask模式指定了不同的taskAffinity,也会启动一个新的返回栈)想象一下,假设我们的程序有一个活动时允许其他程序调用的,如果我们想实现其他程序和我们的程序来共享这个活动的实例,应该如何实现呢?  上面三种肯定是实现不了的,而使用singleInstance模式可以,这种模式下会有一个单独的返回栈来管理这个活动,不管哪个应用程序来访问这个过的,都共用的同一个返回栈






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值