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…...
从Azure IoT Edge到纯裸金属:.NET 9单文件部署瘦身术(体积压缩62%,启动提速3.8倍,附官方未文档化--strip-symbol参数)
第一章:从Azure IoT Edge到纯裸金属:.NET 9单文件部署瘦身术(体积压缩62%,启动提速3.8倍,附官方未文档化--strip-symbol参数)当.NET应用从Azure IoT Edge容器环境迁移到资源受限的工业边缘裸金属设备&#…...
大数据专业如何补齐实战型数据分析能力?从工具、项目到求职一文讲清
大数据专业如何补齐实战型数据分析能力大数据专业学生在理论学习之外,需通过工具熟练度提升、实战项目积累和求职策略优化三方面构建核心竞争力。以下为具体实施路径:工具技能矩阵大数据分析需掌握的工具可分为数据处理、可视化、编程语言三类࿰…...
分布式训练有望解决人工智能的能耗难题
人工智能正面临着巨大的能源消耗挑战。这种持续增长的能源需求体现在支撑AI繁荣的数据中心产生的巨大碳足迹,以及前沿AI模型训练所产生的碳排放量随时间稳步增加。难怪大型科技公司开始青睐核能,设想一个由可靠、无碳能源支撑的未来。但是,虽…...
5分钟彻底解锁Mac百度网盘限速:开源加速插件完整实战指南
5分钟彻底解锁Mac百度网盘限速:开源加速插件完整实战指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾在Mac上使用百度网盘下载…...
深入解析DSP28335三相逆变电路电压闭环程序与三相逆变数字电源程序的源代码及PDF说明,详...
DSP28335,三相逆变电路电压闭环程序,三相逆变数字电源程序。 包括源代码文件和PDF说明文件。 详细说明了代码含义,三相逆变电路电路电压闭环分析,电路设计步骤,软件设计流程,软件调试步骤等。最近在搞三相逆…...
一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)蜗
一、中间件是啥?咱用“餐厅”打个比方 想象一下,你的FastAPI应用是个高级餐厅。 ?? 顾客(客户端请求)来到门口。- 迎宾(CORS中间件):先看你是不是从允许的街区(域名)来…...
3步实现QQ空间历史记录本地存储:面向普通用户的数据备份工具使用指南
3步实现QQ空间历史记录本地存储:面向普通用户的数据备份工具使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 问题场景:那些正在消失的数字记忆 2023年某…...
cf1091div2 C.Grid Covering(数论)
Problem - C - Codeforces 保证遍历完每行每列所以gcd(n,a)1,gcd(m,b)1很好理解 为了遍历所有网格,因为在2*lcm(n,m)次数后会再次踏上轮回重复循环,此时访问了2*lcm(n,m)个格子,于是 2*lcm(n,m)>n*m,也就是2*lcm>gcd(n,m)*…...
[PL2303老芯片兼容性困境]:驱动适配方案实现设备激活(适用于工业控制与嵌入式开发场景)
[PL2303老芯片兼容性困境]:驱动适配方案实现设备激活(适用于工业控制与嵌入式开发场景) 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 …...
Phi-4-mini-reasoning推理模型快速入门:Docker一键部署全攻略
Phi-4-mini-reasoning推理模型快速入门:Docker一键部署全攻略 1. 认识Phi-4-mini-reasoning推理模型 Phi-4-mini-reasoning是微软推出的轻量级开源推理模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个3.8B参数的模型虽然体积小巧&#x…...
