AndroidApp任务栈

Android App在后台运行或退出后,按“最近任务”键可以列出最近使用的App,现在的需求是,公司希望我们做的一个App在最近任务里可以显示两个,或者多个,为什么要这么做呢?因为我一个App里面的一个界面是WebView做的,这个WebView的里面的内容跟一个单独的应用没什么区别,所以希望它在任务栈单独显示一个位置,如何实现呢,其实很简单,步骤如下:

1、新建一个Android项目,默认就有一个MainActivity了,假设我项目名称为“主应用”
2、新建两个Activity,并修改清单文件配置,如下:

        <activity
            android:name=".A"
            android:label="应用A"
            android:launchMode="singleTask"
            android:taskAffinity="com.even.app.newtask.a"/>
        
        <activity
            android:name=".B"
            android:label="应用B"
            android:launchMode="singleTask"
            android:taskAffinity="com.even.app.newtask.b"/>
  • label属性设置它在任务栈中的名称
  • lauchMode指定它在一个单独的任务栈中运行
  • taskAffinity配合lauchMode使用,如果不设置此属性则不会运行到单独的任务,这个属性的值使用填写包名,代表这个任务栈的名称,如果两个Activity的任务栈的名称一样,则这两个Activity属于同一个任务栈,在最近的任务中只会显示一个。

3、在MainActivity中写两个按钮,分别用于开启应用A和应用B,运行效果如下:AndroidApp任务栈_第1张图片
分别点击上面的按钮来开启同一个应用的另外两个Activity,效果如下:
AndroidApp任务栈_第2张图片
AndroidApp任务栈_第3张图片
此时我们总共开启了同一个应用的3个Activity,这时按下“最近任务”按钮,看到的效果感觉是有三个应用一样,效果如下:
AndroidApp任务栈_第4张图片

你可能感兴趣的:(android,经验知识分享)