ActivityInfo taskAffinity】的更多相关文章

通常在Manifest里面使用 <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Activity1" android:taskAffinity="com.winuxxan.task" android:label="@string/app_name…
关于singleTask TaskAffinity allowTaskReparenting 一.Activity的LaunchMode 1.standard 2.singleTop:FLAG_ACTIVITY_SINGLE_TOP  栈顶复用模式,即如果栈顶有本activity实例,则无需新实例化activity. 3.singleTask:FLAG_ACTIVITY_NEW_TASK + FLAG_ACTIVITY_CLEAR_TOP的效果 4.singleInstance:单独一个栈,且栈…
关于任务栈Task 栈的概念 栈(Stack)是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素."先进后出"或"后进先出"就是栈的一大特点,先进入栈的元素总是要等到后进入栈的元素出栈以后才能出栈.递归就是利用到了系统栈,暂时保存临时结果,对临时结果进行保护. 栈的基本操作:压栈.弹栈 任务栈 Task简单的说就是一组以栈的模式聚集在一起的Activit…
最近研究微信调起自己客户端的事情,对于SingleTask和TaskAffinity的理解又多了一些理解.   以前对于Android的四种LaunchMode有一些了解,其中比较有意思的就是SingleTask和SingleInstance .(四种LaunchMode的了解可以参见这篇文章,对于Activity栈的讲述很详细).这两种LaunchMode的理解都跟Task有很大关系.           一个Task可以理解成一个Activtiy栈,可以装载一个或者多个Activity,回退…
在Android系统中,一个application的所有Activity默认有一个相同的affinity(亲密关系,相似之处).也就是说同一个应用程序的的所有Activity倾向于属于同一个task.但是我们并不能说Android里一个应用程序只有一个任务栈.笔者今天针对当taskAffinity不同时,四种launchMode下在打开一个新的Activity时是否会建立一个新的任务栈做了实验. 基本的代码如下: AndroidManifest.xml: MainActivity的代码 pack…
每个Activity都有taskAffinity属性,这个属性指出了它希望进入的Task.如果一个Activity没有显式的指明该Activity的taskAffinity,那么它的这个属性就等于Application指明的taskAffinity,如果Application也没有指明,那么该taskAffinity的值就等于包名.而Task也有自己的affinity属性,它的值等于它的根Activity的taskAffinity的值. 一开始,创建的Activity都会在创建它的Task中,并…
最近研究微信调起自己客户端的事情,对于SingleTask和TaskAffinity的理解又多了一些理解. 以前对于Android的四种LaunchMode有一些了解,其中比较有意思的就是SingleTask和SingleInstance .(四种LaunchMode的了解可以参见这篇文章,对于Activity栈的讲述很详细).这两种LaunchMode的理解都跟Task有很大关系. 一个Task可以理解成一个Activtiy栈,可以装载一个或者多个Activity,回退和打开的顺序逻辑和基本的…
Activity的归属,也就是Activity应该在哪个Task中,Activity与Task的吸附关系.我们知道,一般情况下在同一个应用中,启动的Activity都在同一个Task中,它们在该Task中度过自己的生命周期,这些Activity是从一而终的好榜样. 那么为什么我们创建的Activity会进入这个Task中?它们会转到其它的Task中吗?如果转到其它的Task中,它们会到什么样的Task中去? 解决这些问题的关键,在于每个Activity的taskAffinity属性. 每个Act…
TaskAffinity属性小结 最近在项目中用到了TaskAffinity属性,发现这个还是挺有意思,可以用来控制activity所属的任务栈.但同时只设置这一个属性又是不能完成功能的,需要与其它属性相配合. 一.通过配置方式来实现TaskAffinity来实现 上边说到要想使TaskAffinity属性生效,要与其它属性相配合.在配置文件中,需要设置activity的启动模式为singleTask或singleInstance才能生效(其实singleInstance本来就会在新Task中)…
正常情况下,如果应用已经启动,并将应用切到后台,在通知栏中调起页面时,该应用的Task首先会被调起,然后会将我们的Activity显示在这个Task的顶端.手机百度的通知栏里面有一个快速搜索栏,无论什么情况下,点击之后都会直接弹出搜索页面,透明背景后显示的是桌面.怎么来实现这个功能呢?这就要提到我们的主角TaskAffinity了. 什么是affinity? affinity是指Activity的归属,Activity与Task的吸附关系,也就是该Activity属于哪个Task.一般情况下在同…