今天来说一说,android4种启动模式中的singletask,相对于其它三种而言,本人认为该启动模式更容易让人混淆。
好了现在开始来说说这个坑吧。
在网上找了好久,大多数博客都是前篇一律的说就是启动一个新的task,而经本人试验之后得出了结论:
在说singletask的时候就必须谈到
android:taskAffinity
这个activity在manifest.xml中的属性了.
因为当没有设置taskaffinity时,系统默认是包名,所以此时当用户在同一个程序中通过activity1启动同程序中的另外一个启动模式为singletask的activity2时,事实上两者还是在同一个task中的,并不会新建一个,该task就是程序的包名。
而当activity2设置了
android:taskAffinity="com.helo"
之后再用activity1启动activity2时会新建一个task,该task就是com.helo,并且activity1和activity2之间的跳转动作是不同程序的跳转而不是同一个程序内的跳转。并且点击home键之后,在按menu查看程序后会发现有两个同名的程序。