在android中,一个activity组件可以激活另一个activity组件(可能属于另一个应用程序)。
若新的被激活的activity组件属于另一个应用程序,则那个activity组件会运行在那个应用程序的进程中,但是从用户的角度来看,好像就是属于本应用程序一样。Android是通过将之前的activity组件和新被激活的activity组件放入同一个任务栈来实现这个功能的。从用户的角度看,一个任务栈就代表了“一个应用程序”。它实际上是一个栈,里面放着一组被排列好的相关的activity组件。位于栈底的activity(根activity)就是开启这个任务栈的activity组件,一般情况下,就是应用程序的主界面。而位于栈顶的activity组件即代表当前被激活的activity组件(可接收用户行为的activity)。
任务栈中包含了activity组件的对象,且任务栈中可以包含有某一个activity组件类型的多个实例对象。在任务栈中的activity组件不能被重排序,只能被压栈和弹栈。
任务栈不是某个类型,也不是某一个元素,它是一组activity组件的组织形式。所以没有办法在不影响任务栈中的activity组件的情况下,单独设置任务栈的参数。根activity的参数既是整个任务栈的参数,它会影响任务栈中的所有activity组件。
当某个应用程序在前后台切换的时候,实际上就是代表这个应用程序的一个任务栈在前后台切换。
刚刚描述的行为是activity和任务栈的默认行为,但也有办法在很多方面对它进行修改:
方法1:在发送的请求(即Intent对象)中设置一些标记。
方法2:在manifest文件中,对接收请求(即Intent对象)的activity组件设置一些属性。
所以在请求者和接收者中都可以进行控制。
在Intent对象中主要的标志有:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
在<activity>标签中,主要的属性有:
taskAffinity android:taskAffinity="com.cardroid.sdhc" 表示两个应用里面的亲属关系,如果一个应用的某个ACT
若新的被激活的activity组件属于另一个应用程序,则那个activity组件会运行在那个应用程序的进程中,但是从用户的角度来看,好像就是属于本应用程序一样。Android是通过将之前的activity组件和新被激活的activity组件放入同一个任务栈来实现这个功能的。从用户的角度看,一个任务栈就代表了“一个应用程序”。它实际上是一个栈,里面放着一组被排列好的相关的activity组件。位于栈底的activity(根activity)就是开启这个任务栈的activity组件,一般情况下,就是应用程序的主界面。而位于栈顶的activity组件即代表当前被激活的activity组件(可接收用户行为的activity)。
任务栈中包含了activity组件的对象,且任务栈中可以包含有某一个activity组件类型的多个实例对象。在任务栈中的activity组件不能被重排序,只能被压栈和弹栈。
任务栈不是某个类型,也不是某一个元素,它是一组activity组件的组织形式。所以没有办法在不影响任务栈中的activity组件的情况下,单独设置任务栈的参数。根activity的参数既是整个任务栈的参数,它会影响任务栈中的所有activity组件。
当某个应用程序在前后台切换的时候,实际上就是代表这个应用程序的一个任务栈在前后台切换。
刚刚描述的行为是activity和任务栈的默认行为,但也有办法在很多方面对它进行修改:
方法1:在发送的请求(即Intent对象)中设置一些标记。
方法2:在manifest文件中,对接收请求(即Intent对象)的activity组件设置一些属性。
所以在请求者和接收者中都可以进行控制。
在Intent对象中主要的标志有:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
在<activity>标签中,主要的属性有:
taskAffinity android:taskAffinity="com.cardroid.sdhc" 表示两个应用里面的亲属关系,如果一个应用的某个ACT