首页 > 其他分享 >Android 多任务配置

Android 多任务配置

时间:2023-06-22 11:04:06浏览次数:61  
标签:配置文件 配置 Intent Android taskAffinity 多任务 图标


Android 多任务配置

本篇文章是为了了解安卓中的多任务系统,了解安卓中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的名称和图标。

标签:配置文件,配置,Intent,Android,taskAffinity,多任务,图标
From: https://blog.51cto.com/u_16163453/6534422

相关文章

  • 好家伙66万字,又一份牛逼的Android笔记面世了
    前言很久以前,凭借四大组件、Java基础等知识,便可开开心心的开发,轻松地上岗。而随着Android的不断发展完善,各种组件库越来越成熟,学习资料越来越多,我们却慢慢地看不到方向。信息爆炸的时代,到底该如何提升自己?如何才能找到真正利己的信息?如何才能看清前路的方向?为此我专门找了一份《And......
  • 四年Android开发,在拉勾上投了十几个简历,没有一个面试邀请......药丸了
    在浏览某论坛的时候看到一名程序员吐槽:坐标杭州,四年Android开发一枚,技术不顶尖也不算差吧,这边加班太猛了,在考虑换一个岗位。在拉勾上投了十几个简历,全都是不合适,没有一个面试邀请!!!简历在拉勾上是开放的,竟然没有一个感兴趣的公司打电话给我。前年这个时候,接到的电话还是很多的,这才过......
  • Android视图加载优化——Factory2设置方法
    前言Factory2是直接继承于Factory,继续跟踪下Factory的源码,比Factory的功能更加强大。当我们新建Activity的时候,大部分情况是继承AppCompatActivity。提供了向后兼容性。本文将深入探索AppCompatActivity的视图加载,探索将xml布局文件中的TextView替换成AppCompatTextVi......
  • 6轮面试辛苦拿到阿里Android开发offer,却从22k降到15k,在逗我?
    一小伙工作快3年了,拿到了阿里云Android开发岗位P6的offer,算HR面一起,加起来有6轮面试了,将近3个月的时间,1轮同级+1轮Android用人部门leader+1轮Android组leader+1轮项目CTO+1轮HR+1轮HRBP。一路上各种事件分发机制、自定义View、handler原理、多线程、hashmap、手写算法、......
  • 三年Android开发就这水平?我还不如去招应届生
    公司前段缺人,也面了不少android程序员,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试中,不提算法逻辑,仅仅基础的技术很多也知之不详,多数人数年的工作经验仅仅是用大量第三......
  • 【Android】如何实现同一个布局保证高度不变,使用不同高度的背景
    背景预实现一个切换tab,实现选中与未选中的背景切换,特别之处在于选中背景图和未选中背景图高度不相同,切换之后需要在java代码中动态设置LayoutParams改变高度。预期效果当前问题点选中背景为.9图,未选中背景为xml中通过shape实现。将当前ViewGroup设置为选中状态的固定高度选中效果正......
  • Android binder 机制驱动核心源码详解
    前言应用程序中执行getService()需与ServiceManager通过binder跨进程通信,此过程中会贯穿Framework、Natve层以及Linux内核驱动。binder驱动的整体分层如上图,下面先来宏观的了解下getService()在整个Android系统中的调用栈,ServiceManager本身的获取:与ServiceManage......
  • Android面试技巧总结,这下offer稳啦
    最近有很多朋友给我后台留言:自己投了不少简历,但是收到的面试邀请却特别少;好不容易收到了大厂的面试邀请,但是面试官问得太深了,结果也挂了;对于面试官的问题,明明知道该怎么做,但是却说不清楚。这些问题不是个例,很多人都有这样的困扰。很大一部分是技术层面的问题。薪资比较高的前端岗位......
  • 六年Android开发从组员到Leader的心路历程分享
    前言在互联网工作的这些年,大厂和小厂都待过,也接触过各种各样的管理者和组员,直到近两年自己开始成为技术Leader,算是在两种角色上都有些切身的心得体会,这里给大家分享下,希望能给大家的职场工作带来一些启发。简单说明下,在毕业不久加入阿里的第一年,团队大概十几个人,作为三个新人之一,......
  • Android太太太太太卷了,累了
    我们聊到互联网行业的时候,一个不可避免的话题就是“内卷”,而在程序员这个群体中,Android,绝对是卷得最厉害的。毕竟前几年Android兴起的时候,入门门槛低,培训机构培养了大批Android开发,市面上的初级前端根本不缺,他们很多也是在一些中小厂里写一些重复性的业务代码,再加上后面又有更多的A......