Android APP设置为Launcher 桌面 onCreate启动两次

Android Framework用Activity作为原生Launcher3桌面 文章摘要: 本文介绍了原生Launcher3桌面应用的实现原理。通过分析AndroidManifest.xml文件,指出默认首页是Launcher.java,并展示了其作为主Activity的配置属性。文章重点解析了Launcher.java的布局结构,包括DragLayer、Workspace、Hotseat等核心组件的XML定义和功能说明。其中Workspace包含5个屏幕单元格,Hotseat作为快捷栏,PageIndicator用于页面指示,ScrimView提供背景遮罩效果。这些组件共同构成了An 阅读详情

Android APP设置为Launcher 桌面 onCreate启动两次

解决方案:

Activity添加configChanges属性

android:configChanges="keyboardHidden|orientation|screenSize|locale|screenLayout|mcc|mnc"

AndroidManifest.xml设置如下:

<activity android:name=".MainActivity"
    android:screenOrientation="portrait"
    android:launchMode="singleTask"
  android:configChanges="keyboardHidden|orientation|screenSize|locale|screenLayout|mcc|mnc">
  
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT" />  
    </intent-filter>
</activity>

原因是当系统启动并搜索到可用移动网络的时候会触发 config changes : mcc | mnc ,其中

MCC为移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。

MNC.为移动网号,在一个国家或者地区中,用于区分手机用户的服务商

启动2次解决了,

如果假如你要跳转到另一个Activity,建议也需要添加该属性,不然也会onCreate2次

在使用Flutter中的FlutterActivity时,

因为要播放启动音频,莫名其妙播了2次,打了log,StatefulWidget 的initState竟然调了2次, initState不是只调一次吗…

当时,只想着控制AudioPlaye或者监听LifecycleState,但还是阻挡不住调了2次的结果。

只到我在FlutterActivity中添加了configChanges属性, 原来只在MAinActivity中添加并不能代表所有的Activity都有这个属性,泪奔。。。

参考:

http://www.voidcn.com/article/p-gvaevhvg-bhh.html

https://blog.youkuaiyun.com/qhs1573/article/details/42913475

Android Launcher 源码解析 - Launcher 启动流程与桌面布局 启动流程涉及 AndroidManifest.xml 文件中的声明和 LauncherActivity 类的处理,而桌面布局则由 DesktopLayout 类负责显示用户的应用程序和小部件。在桌面布局的 init() 方法中,我们创建了 Workspace、Dock 和 Hotseat 对象,并将它们添加到桌面布局中。Android Launcher 是 Android 系统的默认桌面应用程序,负责显示用户的应用程序和小部件,并提供一些常用的操作和功能。 阅读详情

相关推荐

【无线通信】射频杂散(RF Spurious Emissions)

射频杂散(RF Spurious Emissions)是指在无线通信系统中,除了在指定频率范围内的预期信号之外,任何不需要的或非预期的射频信号。这些杂散信号可能会干扰其他通信系统,降低系统性能,并违反无线电通信法规。射频杂散通常包括谐波、次谐波、互调产物和其他非线性失真所产生的信号。

qq_38801607的博客 5424

Android APP设置为Launcher时被启动两次

AndroidManifest.xml设置如下,但开机后发现onCreate被执行了两次 <activity android:name=".feature.login.LoginActivity" android:screenOrientation="landscape"> <intent-filter> <category android:name="android.intent.category.HOME" />

MUYI的博客 2302

EastWave应用案例:机箱屏蔽效能仿真

如何使用EastWave对机箱的电磁屏蔽效能进行仿真

2201_76034687的博客 1392

android 启动页 简书,Android启动页重复启动

Android启动页重复启动[toc]1.问题描述​ 在做项目的时候,发现自己做的App在运行过程中,点击Home键或者Back键回到桌面时,这个时候再点击App启动图标,会再显示一遍启动页(SplashActivity),然后进入到App主界面(HomeActivity)。但实际上我想要的效果是和其他App一致的,就是在App没有被结束掉,然后点击启动图标会进入到退出前的显示界面。流程图大概...

weixin_39953845的博客 781

大规模SoC芯片Hierarchical Flow Calibre LVS教程

大规模SoC芯片Hierarchical Flow Calibre物理验证LVS实现教程

weixin_37584728的博客 1200

晶体管的 栅极gate 材料选用 多晶硅polysilicon,并采用 自对准工艺 self-aligned IC后端版图 【VLSI】

本文为了解决为什么要使用多晶硅作栅极触点的问题,先介绍了MOS管的工作原理是通过栅极上所加的电压控制漏极与源极之间电流,然后解释了栅极的材料为什么选用多晶硅,然后介绍了晶体管里栅极的自对准工艺(Self-Aligned Gate )。

Jie_MSD的博客 1万+

Android 启动页重复启动问题

问题描述 使用getPackageManager().getLaunchIntentForPackage重新启动app进入首页,app使用home回退到后台,再打开app,会重复打开启动页 在启动页oncreate里加入 if (!isTaskRoot()) { finish(); return; }

b1249813239的博客 1212

Code Composer Studio 12.0.0版本 官方例程导入实战指南

本文详细介绍了在Code Composer Studio 12.0.0版本中,如何利用内置的Resource Explorer工具高效导入官方例程的完整实战指南。通过分步讲解定位开发板、导入工程、配置编译器及调试验证等关键操作,帮助开发者快速上手TI微控制器开发,避免常见错误,有效提升学习与开发效率。

weixin_29169899的博客 120

ANDROID 开机启动两则

在网上找了下开机启动,有两种方法,一是改配置文件,二是写代码,控制SERVICE或是ACTIVETY来实现,我先把代码贴出来,有时间再把自己写的东西贴出来 http://blog.csdn.net/james506/article/details/7348434 Android开机运行,替换系统launch 分类: TIPS Android 2012-03-13

lovedelphi2006的专栏 567

从 ST22 到根因定位:ABAP Dumps 全景排查指南(含典型 Dump 案例、修复套路与云时代实践)

本文系统介绍了SAP系统中ABAP短转储(Dump)的分析方法。首先指出短转储是程序运行时无法处理的错误导致系统强制终止执行。文章详细解析了短转储报告各区块的作用:从概述性的Short Text和What happened,到核心的Error Analysis和Source Code Extract,再到关键的系统字段Contents of system fields和调用栈Active Calls/Events。针对不同场景提供了排查建议:客户代码应建立可控边界,标准对象优先查阅SAP Notes。最后推

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 484

YOLO26魔改神技:YOLO26引入SimAM(无参注意力):不增加网络参数的3D能量函数提点黑科技

文章摘要 2026年YOLO26模型发布引发边缘计算革命,但特定场景精度不足问题催生注意力机制改进需求。本文聚焦无参数注意力机制SimAM,基于神经科学理论通过3D能量函数直接计算神经元权重,实现零参数量提升模型性能。文章深度解析YOLO26四大创新架构,对比SimAM与传统注意力机制差异,并探讨其在YOLO26中的集成方案。研究显示,SimAM在不增加模型体积前提下显著提升mAP指标,特别适合边缘端部署。全文涵盖架构设计、代码实现、竞品对比、部署方案等维度,为轻量化视觉模型优化提供系统解决方案。

ZDQ58818的博客 272

Android应用 欢迎页 登录页 闪屏页 首页 按home键后 点图标重复启动问题

首先我们来看现象:1、第一次点击图标启动应用是启动首界面A,然后进入第二个界面B;按home键后,再次点击图标,进入的页面B,而不是A为什么?2、当我们通过QQ上调用手机浏览器打开网页之后,点击手机浏览器桌面图标再次打开浏览器,发现不是刚刚从QQ打开浏览的网页,为什么?第一个现象;1、启动新应用 一般情况下当我们启动一个应用后系统会新建一个Task用来存放Activity的实例,一个一个挨个放进去...

技术追求者! 4371

影楼精修-肤色统一算法解析

本文介绍了影楼精修中肤色统一算法的实现方案,并以像素蛋糕软件为例进行详细分析。肤色统一旨在通过调整人像照片中皮肤区域的颜色,使其看起来更加均匀一致。像素蛋糕软件提供了AI肤色统一和传统肤色统一两种功能,分别适用于不同需求。传统肤色统一算法通过皮肤分割、人脸检测、亮度统一和颜色统一等步骤,实现了对皮肤区域的精细调整。文章还提供了亮度统一的核心代码,并对比了传统算法与AI算法的效果,指出AI算法在自然度和亮度矫正方面表现更优。整体而言,本文为影楼精修中的肤色统一提供了实用的技术参考。

Trent1985的专栏 2065

Android系统开机到Launcher启动流程分析

系统如何是被已安装的应用哪个是launcher应用? 如何定制一款launcher? 进程创建完成的出口是如何定义的? 掌握进程创建流程中各个类和关键方法的作用。 为什么Activity必须在清单文件中注册? ActivityStarter会做各种启动前检查。 ...

路漫漫其修远兮,吾将上下而求索 8893

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android10.0系统启动之Launcher(桌面)启动流程-[Android取经之路]

[Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎么启动的 Android 10.0系统启动之init进程 Android10.0系统启动之Zygote进程 Android 10.0 系统启动之SystemServer进程 Android 10.0 系统服务之ActivityMnagerService Android10.0系统启动之Launcher(桌面)启动流程 Android10.0应用进程创建过程以及Zygote的fork流程 Android 10

纸上得来终觉浅,绝知此事要躬行 4133

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android桌面(Launcher)源码分析

Android桌面(Launcher)源码分析

Android应用开发工程师 2069

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android笔记 - Android启动之Launcher启动

Android 启动的第三阶段是 Launcher 的启动,也就是最终会看到的 Android 桌面的启动。在之前第二阶段Android启动之Android Framework启动中, Zygote, ServiceManager, ActivityManagerService 和 PackageManagerService 等系统服务已经启动起来,接下来的 Launcher 启动过程就会看到它们的身影。

yansha的专栏 4239

Launcher进程启动

文章已同步Github博客:Launcher进程启动 使用到的相关源码:https://github.com/JesusYoung/AndroidResourceCode9.0/tree/master 基于Android 9.0 1、Launcher Launcher作为Android系统的桌面,它的作用有两点: 作为Android系统的启动器,用于启动应用程序; 作为Android系统的桌面...

freelander_j的博客 1190

Launcher进程启动流程

Launcher作为Android系统的桌面,它的作用有两点:作为Android系统的启动器,用于启动应用程序;作为Android系统的桌面,用于显示和管理应用程序的快捷图标或者其它桌面组件;

jike007gt的博客 748

Android App 启动流程梳理(基于 Android 10)

1. 概述 当我们点击桌面的应用图标,直到应用的启动页出来,这期间的在源代码的流程中到底是什么样子的?之前追过 Android App 启动的相关源码,由于没有做相关记录,时间一久,已经忘得差不多了。现在有时间,也下载了 Android 10 的源码,就重新追一遍并且画一画相关的流程图。 2. 从点击桌面图标开始 Android 的桌面本身也是一个 APP,为 Launcher。由于 Android 是开源的,很多手机厂商都做了相关的修改,甚至重新做一个新的启动页。之前做公司做电视系统的定制化,就没.

接受自己的普通,然后拼尽全力去与众不同 4567

Android系统启动系列8 Launcher启动流程

一 概述 在 Android 中,桌面应用 Launcher 由 Launcher 演变到 Launcher2,再到现在的 Launcher3,Google 也做了很多改动。 Launcher 不支持桌面小工具动画效果,Launcher2 添加了动画效果和 3D 初步效果支持,从 Android 4.4 (KK) 开始 Launcher 默认使用 Launcher3, Launcher3 加入了透明状态栏,增加 overview 模式,可以调整 workspace 上页面的前后顺序,可以动态管理屏幕数

liuwg1226的专栏 2093

android 防止重复启动app,Android应用Launcher重复启动问题

Bug表现操作一:F_step1、使用Installer安装App,安装后选择打开app,应用进入闪屏页Activity,然后跳转到主页MianActivity;F_step2、在主页Activity时按下了Home键,回到桌面;F_step3、再点击app的icon图标,App并没有直接进入主页,而是先进入了闪屏页;操作二:S_step1、点击应用图标,应用进入闪屏页Activity,然后跳转到...

weixin_35197188的博客 1540

Android Launcher启动全流程解析:从Zygote到桌面渲染

Launcher是Android系统中承载所有App入口的核心Home Activity,其启动过程本质是系统服务就绪后首个跨进程Activity调度的完整链路。它依赖Zygote进程孵化机制实现类预加载与内存共享,通过Binder与ActivityManagerService、PackageManagerService、WindowManagerService等关键系统服务完成三次握手式绑定,并基于Intent匹配规则扫描并构建桌面图标列表。该流程直接决定冷启动性能、图标可见性与点击响应性,广泛应用于RO

weixin_34268310的博客 750

android 横屏Launcher中启动一个竖屏app,退出app后launcher也变成竖屏的了

前段时间在做模拟器的Launcher开发,遇到这个问题,使用的夜神模拟器,不确定其他模拟器也有这个问题,问题如下:可以看到本来是横屏的launcher在退出app后也变成竖屏了 。看到这种bug,很容易想到的是横竖屏切换的问题,launcher切换成竖屏后不能自己...

Framework-coder的博客 1449

Android安装两次才成功,Android应用从市场安装完成打开与桌面打开,被启动两次的问题...

问题描述:1、从Android应用市场下载并安装应用,安装完成后,当前界面下方会出现“打开”按钮,这时候我们点击“打开”,会启动应用,进入到应用的启动页面,然后进入应用的主界面,这个时候我们什么也不做,按Home键返回到桌面,找到应用图标所在区域,点击应用图标,此时我们所期待的现象是重新回到之前我们打开的页面,对吗?然后这个时候你点击桌面上的应用图标打开应用,这个时候你会惊奇的发现应用重新启动了。...

weixin_35308269的博客 503

android简书app源码,Android应用启动过程-Launcher源码浅析

简书 编程之乐转载请注明原创出处,谢谢!本文参考的源码(7.1.1_r6)Launcher也是一个应用程序,和我们的App没有什么区别,当用户点击应用图标时候,启动其他的App,本文主要为分析Activity的启动流程打基础。Launcher.java代码量比较多,大约4500多行,但是里面的逻辑并不复杂,不过我这里分析它的意义主要为了更好理解后面的知识,了解Launcher具体的流程才是重要的,...

weixin_28862113的博客 604
上一篇: Flutter 监听返回键
下一篇: Dio的简单封装
K_Hello
博客等级 码龄12年 33粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值