当前位置: 首页 > news >正文

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 多桌面图标启动, 爬坑点击打开不同页面

备注 &#xff1a; MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的&#xff0c;即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成&#xff1a;android:launchMode"singleTask" 点击顺序&#xff1…...

2024-3-1-网络编程作业

1>操控机械臂&#xff1a; 通过w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09; d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 源代码&#xff1a; #include <myhead.h> #define minStep 10 //最小偏…...

pytorch基础2-数据集与归一化

专题链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/2&#xff1b;最后编辑&#xff1a;2024/3/2 本教程…...

Python测试框架pytest介绍用法

1、介绍 pytest是python的一种单元测试框架&#xff0c;同自带的unittest测试框架类似&#xff0c;相比于unittest框架使用起来更简洁、效率更高 pip install -U pytest 特点&#xff1a; 1.非常容易上手,入门简单,文档丰富&#xff0c;文档中有很多实例可以参考 2.支持简单的单…...

AI对话系统app开源

支持对接gpt&#xff0c;阿里云&#xff0c;腾讯云 具体看截图 后端环境&#xff1a;PHP7.4MySQL5.6 软件&#xff1a;uniapp 废话不多说直接上抗揍云链接&#xff1a; https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码...

SpringBoot+aop实现主从数据库的读写分离

读写分离的作用是为了缓解写库&#xff0c;也就是主库的压力&#xff0c;但一定要基于数据一致性的原则&#xff0c;就是保证主从库之间的数据一定要一致。如果一个方法涉及到写的逻辑&#xff0c;那么该方法里所有的数据库操作都要走主库。 一、环境部署 数据库&#xff1a;…...

胎神游戏集第二期

延续上一期 一、海岛奇胎 #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的关系(模板字面量、模板字符串、占位符)

字符串&#xff1a;编程时最重要的数据类型之一。 正则表达式&#xff1a;赋予开发者更多操作字符串的能力。 1、 Unicode和ASCII 1.1 概述 Unicode是ASCII字符编码的一个扩展&#xff0c;只不过在Windows中&#xff0c;用两个字节对其进行编码&#xff0c;也称为宽字符集&…...

三、低代码平台-单据配置(单表增删改查)

一、业务效果图 主界面 二、配置过程简介 配置流程&#xff1a;业务表设计 -》业务对象建立-》业务单据配置-》菜单配置。 a、业务表设计 b、业务对象建立 c、业务单据配置 功能路径&#xff1a;低代码开发平台/业务开发配置/单据配置维护 d、菜单配置...

6.1 数据驱动型业务管理方法(3%)

1 数据的产生与应用 1.数据的产生 2.数据的特征 3.数据的应用过程 应用到决策过程中 4.从决策到执行 决策&#xff1a;靠经验来进行决策&#xff08;80%&#xff09;&#xff1b;可依据数据辅助&#xff08;20%&#xff09; 经验比数据重要的多&#xff0c;数据是辅助&…...

JVM学习目录

JVM ✅ JVM运行时内存结构 ✅ JVM常用启动参数 ✅ JVM内存分配与垃圾收集流程 ✅ 什么是垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称GC&#xff09; ✅ 如何调用垃圾回收器的方法 ✅ GC如何判定对象已死 ✅ 方法区的垃圾收集 ✅ 垃圾收集算法 ✅ JVM垃圾回…...

使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度?

使用远程桌面连接工具上传文件到Windows轻量应用服务器时&#xff0c;如何优化文件传输速度&#xff1f; 优化网络连接&#xff1a;确保网络连接稳定和畅通&#xff0c;使用有线网络连接代替无线网络&#xff0c;以减少网络延迟和提高文件传输速度。 调整远程桌面设置&#xf…...

【Linux】基本指令(下)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 日志 日志的概念: 网络设备、系统及服务程序等&#xff0c;在运作时都会产生一个叫log的事件记录&#xff1b;每一行日志都记载着日期、时间、使用者及动作等相关…...

LeetCode受限条件下可到达节点的数目

题目描述 现有一棵由 n 个节点组成的无向树&#xff0c;节点编号从 0 到 n - 1 &#xff0c;共有 n - 1 条边。 给你一个二维整数数组 edges &#xff0c;长度为 n - 1 &#xff0c;其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restr…...

[Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包

一、设置应用包名 在Flutter开发中&#xff0c;修改应用程序的包名&#xff08;也称作Application ID&#xff09;涉及几个步骤&#xff0c;因为包名是在项目的Android和iOS平台代码中分别配置的。请按照以下步骤操作&#xff1a; 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. 区间选点 思路 &#xff08;贪心&#xff09;O(nlogn) 根据右端点排序 将区间按右端点排序 遍历区间&#xff0c;如果当前区间左端点不包含在前一个区间中&#xff0c;则选取新区间&#xff0c;所选点个数加1&#xff0c;更新当前区间右端点。如果包含&#xff0c;则跳…...

JAVA计算表达式

需求&#xff1a; 1、例如if(score>85){return 1;}else if(score>70){return 2;}else if(score>60){return 3;}else{return 4;}有这一串字符串&#xff0c;要执行这个字符串&#xff0c; 如果score为86分&#xff0c;则能得到1&#xff1b;如果score为30分&#xff…...

【复现】宏景HCM 任意文件读取漏洞_63

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 宏景HCM 将人才标签技术应用于员工招聘、人才选拔等环节&#xff0c;通过多维度的标签体系&#xff0c;形成不同专业序列的人才画…...

Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)

安装k8有多种方式如&#xff1a; minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip &#xff1a;192.168.113.120 2G运存 2内核 node1 ip &#xff1a;192.168.113.121 2G运存 2内核 node2 ip &#xff1a;192.168.1…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...