首先说一下Task是一个什么概念吧:Task是一个包含activity的列表。没
错,简单的说就是按照启动的先后来排队的一个队列。Back Stack,就是回退栈的意思:那么有什么用?Back Stack是存储一个Task的实现方式,一个容器。它具有栈的特性:后进先出。
那么,依据什么来把activity指定给某个Task?
------默认情况下,根据activity的启动的顺序,加入A启动了B,那么B默认情况下就放到了
A的Task的Back Stack里面啦。当然,你也可以去修改这一个默认的行为。在下面的一些部分会讲述怎么去修改的啦。
需要注意的一点是:假如一个activity在一个新的task里启动且没有其他直接启动的方法(即不是Main,Launch的activity),然后按下Home键离开了该Task,然后通过启动图标来返回应用的话,是无法回到该activity的。
1.保存activity的属性和状态:
默认情况下,当activity脱离前台进入后台运行的时候,系统会自动保存它的配置信息,当用
户返回到activity的时候,可以自动的复原.
然而当过了比较长的一段时间后或者系统需要回收内存什么的,会清除掉它的配置信息,当
用户返回到该activity的时候会重新的启动该activity.
那么这种情况下如果要把以前做的重新再来一遍,这用户体验想想就觉得不妥啊.那么我
们需要自己去保存和恢复activity的配置信息.then ,how?
实现onSaveInstanceState()方法,把所需的属性信息保存到bundle里.
在onCreate()方法里会有一个Bundle参数,如果不为空的话证明了之前是有一些信
信息是保存在这里的,我们就可以利用里面的信息去恢复用户原本处于的状态,这样子用户的体验是不是就好狠多啦?嘿嘿嘿嘿嘿
2.管理Task
如开头所说,我们可以修改系统的默认行为(即如果A启动了B,会把B放入A所在的Task和Back Stack里),那么,有两种方式可以做到:
A.在startActivity(Intent intent)的intent中定义flag:
inten