Android 多桌面图标启动, 爬坑点击打开不同页面
备注 :
MainActivity 正常带界面的UI
MainActivityBt 和 MainActivityUsb 是透明的,即 android:theme="@style/TranslucentTheme"
###场景1:只有MainActivity 设置成:android:launchMode="singleTask"
点击顺序:MainActivity > home键 > MainActivityBt > home键 > MainActivityUsb
日志如下:
2024-03-03 21:22:11.724 15131-15131 MultipleIcon pid-15131 D MainActivity.onCreate
2024-03-03 21:22:11.729 15131-15131 MultipleIcon pid-15131 D MainActivity.onStart
2024-03-03 21:22:11.730 15131-15131 MultipleIcon pid-15131 D MainActivity.onResume
---------------------------- PROCESS STARTED (15131) for package com.ifeng.multipleicon ----------------------------
2024-03-03 21:22:14.817 15131-15131 MultipleIcon com.ifeng.multipleicon D MainActivity.onStart
2024-03-03 21:22:14.817 15131-15131 MultipleIcon com.ifeng.multipleicon D MainActivity.onResume
2024-03-03 21:22:17.948 15131-15131 MultipleIcon com.ifeng.multipleicon D MainActivity.onStart
2024-03-03 21:22:17.949 15131-15131 MultipleIcon com.ifeng.multipleicon D MainActivity.onResume
日志简化图: 并没有执行MainActivityBt.onCreate 和 MainActivityUsb.onCreate;而且MainActivity只会执行一次。

###场景2:三个都设置成:android:launchMode="singleTask"
点击顺序:MainActivity > home键 > MainActivityBt > home键 > MainActivityUsb
2024-03-03 21:26:49.050 15690-15690 MultipleIcon pid-15690 D MainActivity.onCreate
2024-03-03 21:26:49.057 15690-15690 MultipleIcon pid-15690 D MainActivity.onStart
2024-03-03 21:26:49.057 15690-15690 MultipleIcon pid-15690 D MainActivity.onResume
---------------------------- PROCESS STARTED (15690) for package com.ifeng.multipleicon ----------------------------
2024-03-03 21:26:52.114 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivityBt.onCreate
2024-03-03 21:26:52.117 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onStart
2024-03-03 21:26:52.136 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onNewIntent
2024-03-03 21:26:52.136 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onResume
2024-03-03 21:26:56.130 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivityUsb.onCreate
2024-03-03 21:26:56.133 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onStart
2024-03-03 21:26:56.143 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onNewIntent
2024-03-03 21:26:56.144 15690-15690 MultipleIcon com.ifeng.multipleicon D MainActivity.onResume
日志简化图: 都有执行MainActivityBt.onCreate 和 MainActivityUsb.onCreate;而且MainActivity也成功跳转了!
!!!注意点:
#1. 多图标入口,需要跳转对应页面,入口Activity需要设置成singleTask, 否则只会唤起现有后台的页面。
#2. 多图标入口,如果是公用一个页面,刷新数据需要在onCreate 和 onNewIntent 中刷新UI。
详细代码:
Manifest配置文件:
<applicationandroid:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.MultipleIconApplication"tools:targetApi="31"><activityandroid:name=".MainActivityBt"android:label="BT"android:exported="true"android:launchMode="singleTask"android:theme="@style/TranslucentTheme"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".MainActivityUsb"android:label="USB"android:exported="true"android:launchMode="singleTask"android:theme="@style/TranslucentTheme"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".MainActivity"android:exported="true"android:label="@string/app_name"android:launchMode="singleTask"android:theme="@style/Theme.MultipleIconApplication"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>
MainActivity相关刷新UI代码 :
class MainActivity : AppCompatActivity() {private val type : String?get() = intent.getStringExtra("TYPE")// 第一次打开需要在这里刷新override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)Log.d("MultipleIcon", "MainActivity.onCreate")syncTypeDisplay()}override fun onStart() {super.onStart()Log.d("MultipleIcon", "MainActivity.onStart")}// 当非首次进入时,需要在这里刷新override fun onNewIntent(intent: Intent) {super.onNewIntent(intent)// 需要使用setIntent(intent)赋值给当前Activity的Intent.否则,后续的getIntent()都是得到老的Intent。setIntent(intent) syncTypeDisplay()Log.d("MultipleIcon", "MainActivity.onNewIntent")}private fun syncTypeDisplay() {findViewById<TextView>(R.id.tv).text = when(type){"BT" -> {"蓝牙音乐"}"USB" ->{"USB音乐"}else -> {"收音机"}}}override fun onResume() {super.onResume()Log.d("MultipleIcon", "MainActivity.onResume")}
}
相关文章:
Android 多桌面图标启动, 爬坑点击打开不同页面
备注 : MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的,即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成:android:launchMode"singleTask" 点击顺序࿱…...
2024-3-1-网络编程作业
1>操控机械臂: 通过w(红色臂角度增大)s(红色臂角度减小) d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 源代码: #include <myhead.h> #define minStep 10 //最小偏…...
pytorch基础2-数据集与归一化
专题链接:https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程:https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑:2024/3/2;最后编辑:2024/3/2 本教程…...
Python测试框架pytest介绍用法
1、介绍 pytest是python的一种单元测试框架,同自带的unittest测试框架类似,相比于unittest框架使用起来更简洁、效率更高 pip install -U pytest 特点: 1.非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 2.支持简单的单…...
AI对话系统app开源
支持对接gpt,阿里云,腾讯云 具体看截图 后端环境:PHP7.4MySQL5.6 软件:uniapp 废话不多说直接上抗揍云链接: https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码...
SpringBoot+aop实现主从数据库的读写分离
读写分离的作用是为了缓解写库,也就是主库的压力,但一定要基于数据一致性的原则,就是保证主从库之间的数据一定要一致。如果一个方法涉及到写的逻辑,那么该方法里所有的数据库操作都要走主库。 一、环境部署 数据库:…...
胎神游戏集第二期
延续上一期 一、海岛奇胎 #include<bits/stdc.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> using namespace std; typedef BOOL (WINAPI *PROCSETCONSOLEFONT)(HANDLE, DWORD); PROCSETCONSOLEFONT SetCons…...
Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)
字符串:编程时最重要的数据类型之一。 正则表达式:赋予开发者更多操作字符串的能力。 1、 Unicode和ASCII 1.1 概述 Unicode是ASCII字符编码的一个扩展,只不过在Windows中,用两个字节对其进行编码,也称为宽字符集&…...
三、低代码平台-单据配置(单表增删改查)
一、业务效果图 主界面 二、配置过程简介 配置流程:业务表设计 -》业务对象建立-》业务单据配置-》菜单配置。 a、业务表设计 b、业务对象建立 c、业务单据配置 功能路径:低代码开发平台/业务开发配置/单据配置维护 d、菜单配置...
6.1 数据驱动型业务管理方法(3%)
1 数据的产生与应用 1.数据的产生 2.数据的特征 3.数据的应用过程 应用到决策过程中 4.从决策到执行 决策:靠经验来进行决策(80%);可依据数据辅助(20%) 经验比数据重要的多,数据是辅助&…...
JVM学习目录
JVM ✅ JVM运行时内存结构 ✅ JVM常用启动参数 ✅ JVM内存分配与垃圾收集流程 ✅ 什么是垃圾回收机制(Garbage Collection,简称GC) ✅ 如何调用垃圾回收器的方法 ✅ GC如何判定对象已死 ✅ 方法区的垃圾收集 ✅ 垃圾收集算法 ✅ JVM垃圾回…...
使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度?
使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度? 优化网络连接:确保网络连接稳定和畅通,使用有线网络连接代替无线网络,以减少网络延迟和提高文件传输速度。 调整远程桌面设置…...
【Linux】基本指令(下)
🦄个人主页:修修修也 🎏所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 日志 日志的概念: 网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关…...
LeetCode受限条件下可到达节点的数目
题目描述 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restr…...
[Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
一、设置应用包名 在Flutter开发中,修改应用程序的包名(也称作Application ID)涉及几个步骤,因为包名是在项目的Android和iOS平台代码中分别配置的。请按照以下步骤操作: 1.Android Flutter工程中全局搜索替换包名 …...
electron-release-server部署electron自动更新服务器记录
目录 一、前言 环境 二、步骤 1、下载上传electron-release-server到服务器 2、宝塔新建node项目网站 3、安装依赖 ①npm install ②安装并配置postgres数据库 ③修改项目配置文件 ④启动项目 ⑤修改postgres的认证方式 ⑥Cannot find where you keep your Bower p…...
贪心(基础算法)--- 区间选点
905. 区间选点 思路 (贪心)O(nlogn) 根据右端点排序 将区间按右端点排序 遍历区间,如果当前区间左端点不包含在前一个区间中,则选取新区间,所选点个数加1,更新当前区间右端点。如果包含,则跳…...
JAVA计算表达式
需求: 1、例如if(score>85){return 1;}else if(score>70){return 2;}else if(score>60){return 3;}else{return 4;}有这一串字符串,要执行这个字符串, 如果score为86分,则能得到1;如果score为30分ÿ…...
【复现】宏景HCM 任意文件读取漏洞_63
目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 宏景HCM 将人才标签技术应用于员工招聘、人才选拔等环节,通过多维度的标签体系,形成不同专业序列的人才画…...
Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)
安装k8有多种方式如: minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip :192.168.113.120 2G运存 2内核 node1 ip :192.168.113.121 2G运存 2内核 node2 ip :192.168.1…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
