AndroidAndroid 多任务配置
Posted 小陈乱敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidAndroid 多任务配置相关的知识,希望对你有一定的参考价值。
前言
本篇文章是为了了解安卓中的多任务系统,了解安卓中Task的栈结构,以及怎么配置app的多任务,模仿微信小程序。
多任务配置
在安卓手机上,当我们打开微信小程序,可以看到小程序其实是一个独立的任务,这是怎么配置的呢。
其实很简单,我们只需要在安卓项目的配置文件中,对Activity进行以下配置即可
<activity
android:name=".MainActivity2"
android:launchMode="singleTask"
android:taskAffinity="com.demo.myapplication.task2" />
重点在这两行代码,缺一不可。
android:launchMode="singleTask"
android:taskAffinity="com.demo.myapplication.task2"
launchMode
很常见,是启动模式的一种,singleTask
代表单独在一个栈中,taskAffinity
就是当前的Activity所属的栈。
taskAffinity
属性很少见,它实际上是有个默认值,当不指定Activity的taskAffinity
时,它会先查找application
标签中的值,如果application
中也不存在,就会使用配置文件中的包名(package)
在安卓手机上的任务管理器中会根据taskAffinity
区分不同的任务,所以我们配置很多taskAffinity
,就能在手机的任务管理器中看到很多的任务。
还有另外一种动态配置的方法,可以达到同样的效果:
Intent intent = new Intent(this, MainActivity2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
高级配置
- 换名称
微信中的小程序是不同的名字。可以这样设置 在Activity中进行设置:
setTaskDescription(new ActivityManager.TaskDescription("任务名"));
另一种方法在配置文件中进行设置。
<activity
android:name=".MainActivity2"
android:label="任务名"
/>
- 换图标
任务管理器中显示的图标样式。如果不设置,就和宿主的是一样的图标。
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
setTaskDescription(new ActivityManager.TaskDescription("任务名", bitmap));
同样的效果,也可以在配置文件中进行设置
<activity
android:name=".MainActivity2"
android:icon="@drawable/setting"
/>
注意:名称和图标的更改如果不单独设置,就会同步app的名称和图标。
最后
愿你有一天,真爱自己,善待自己。
高性能云服务器 精品线路独享带宽,毫秒延迟,年中盛惠 1 折起本文在开源项目:在下方二维码中已收录,如何面试拿高薪中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
以上是关于AndroidAndroid 多任务配置的主要内容,如果未能解决你的问题,请参考以下文章
什么是多宿主主机(multi-homed machine)?
AndroidAndroid如何一进入一个activity就弹出输入法键盘