《第一行代码》学习笔记11-活动Activity(9)

1.android:theme,是用于给当前活动指定主题的,Android系统内置很多主题可以选择,@android:style/Theme.Dialog则是
让DialogActivity使用对话框式的主题。
2.onSaveInstanceState()回调方法,该方法会保证一定在活动被回收之前调用,故我们可以通过该方法解决活动被回收时临时
数据得不到保存的问题。onSaveInstanceState()方法会携带一个Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,
比如可以使用 putString()方法保存字符串,使用putInt()方法保存整型数据,等等。
每个保存方法传入两个参数,第一个是键,用于后面从Bundle中取值,第二个是真正要保存的内容。
3.Intent可以结合Bundle一起用于传递数据,首先,把需要传递的数据都保存在 Bundle中->再将Bundle对象存放在Intent中->
到了目标活动后先从Intent中取出Bundle,再从Bundle中一一取出数据。
4.活动的启动模式一共有4种:standard, singleTop, singleTask, singleInstance,可以在AndroidManifest.xml中通过给
标签指定android:launchMode属性来选择启动模式。
(1)standard模式:每当启动一个新的活动,就会在返回栈中入栈,并处于栈顶位置。对于使用standard模式的活动,系统不会
在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。
(2)singleTop模式:在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会在创建新的活动实例。
(3)singleTask模式:每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该
实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
(4)singleInstance模式:会启用一个新的返回栈来管理这个活动,(其实如果singleTask模式指定了不同的taskAffinity,也会
启动一个新的返回栈),不管是哪个应用程序来访问这个活动,都共用同一个返回栈,也就解决了共享活动实例的问题。

上一篇:@rematch/core——dispatch的简化版


下一篇:高性能的JavaScript库---Lodash