一.优秀文章概述

下面的文章描述动态修改桌面图标的基本方法,并且总结了很多坑及解决方案,以下是在此文章基础上的补充

《Android动态修改应用图标和名称》

二.第一个新坑

Android9.0以上非小米手机,在动态修改图标后,最近任务列表不显示本应用的问题

这个问题可以用资源文件夹限定符解决:

首先找到AndroidManifest文件中的启动页别名配置,如下:

        <activity-aliasandroid:name=".pages.launch.SplashActivity.mayday"android:enabled="false"android:icon="@mipmap/ic_launcher"android:roundIcon="@mipmap/ic_launcher"android:screenOrientation="portrait"android:targetActivity=".pages.launch.SplashActivity"android:theme="@style/LaunchMode"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="xxxapp" /></intent-filter></activity-alias>

在activity-alias节点添加android:theme属性,如下:

 android:theme="@style/LaunchMode"

LaunchMode属性值指向res\values\styles.xml文件中的内容,然后添加如下代码:

    <style name="LaunchMode" parent="@style/Theme.AppCompat.NoActionBar"><item name="android:launchMode">standard</item></style>

然后在res文件夹下建立values-v28文件夹,并新建styles.xml文件,添加如下代码:

    <style name="LaunchMode" parent="@style/Theme.AppCompat.NoActionBar"><item name="android:launchMode">standard</item></style>

这样可以使启动页在不同版本启动模式不一样,从而解决9.0以上最近应用不出现自己的应用的问题

三.第二个新坑

当收到极光厂商通道的推送后,点击推送通知,从而启动APP闪屏页,如果此时在闪屏页配置了动态更换图标的代码,此时无法拉起APP

可以用如下代码解决

        var iconList = listOf(".pages.launch.SplashActivity",//0默认".pages.launch.SplashActivity.mayday",//1五一)/*** 启动欢迎页,因为更换启动图标原因,此处启动代码比较特殊*/fun startSplashActivity(applicationContext: Context, packageName: String, context: Context) {val mainIntent = Intent()mainIntent.component = ComponentName(applicationContext,"$packageName${iconList[SPUtils.getInt("currentIconIndex", 0)]}")context.startActivity(mainIntent)}

其中$packageName是本APP包名,currentIconIndex是当前选择的icon在iconList中的集合索引,iconList的建立是为了方便保存动态更换图标的索引

用startSplashActivity这个方法,就可以在推送通知点击后,打开不同的图标的闪屏页

Android动态修改桌面图标新坑总结相关推荐

  1. Android 动态改变桌面图标

    其实很简单,利用 AndroidManifest.xml 文件中的 <activity-alias> 标签即可实现. <activity-alias> 介绍 大家知道,对于 A ...

  2. Android如何动态更换桌面图标(巨坑)

    转载https://blog.csdn.net/pangjl1982/article/details/83308512 1.Android如何动态更换桌面图标 1.1使用场景       APP,在中 ...

  3. Android之动态更换桌面图标

    Android之动态更换桌面图标 文章链接:http://blog.csdn.net/qq_16628781/article/details/69054325 知识点 动态更换APP 桌面icon的引 ...

  4. Android音乐App桌面图标制作以及启动页面开发(简易音乐 一)

    Android音乐App桌面图标制作以及启动页面开发( 简易音乐 一 ) 关于 效果 第一步 第二步 第一步 修改SplashAcitivity的布局页面 第二步 修改androidmanifest. ...

  5. Android动态修改icon

    Android动态修改icon 南京证券项目最近的需求之一,在某一时间时应用图标icon显示4.0icon,春节时显示春节icon,当春节过后,app需还原为默认icon,也就是有三个icon需要变化 ...

  6. 2,【electron+vue】 构建桌面应用——常见的功能及问题(修改桌面图标,软件图标,窗口图标,图标不显示问题,影藏默认菜单栏,开机自启,手动或被动关闭应用)

    一.修改桌面图标,软件图标或者窗口左上角的图标. 1.首先这些图标必须是 .ico 结尾的图片,如果你将其他格式的图片改成.ico的,也不行哦,至于为什么,我也没深入研究,按着规定来就好. 2.如何获 ...

  7. android 动态修改控件的宽高

    今天,简单讲讲android如何动态设置控件的宽高. 这个其实也比较简单,但是之前做的时候出现了问题,代码里设置的宽高是dx,需要先转成dp.下面以RelativeLayout作为例子,简单记录一下. ...

  8. macOS app动态修改app图标,图标为icns格式

    1.macOS app动态修改app图标,图标为icns格式 //需要重启软件才能看见效果 -(void)ChangeAppIcon:(NSString *)icnsPath {if (![[NSFi ...

  9. Windows 10 修改桌面图标一(系统图标)

    修改系统图标 EX:此电脑.控制面板等 首先桌面右键点击个性化,然后选择主题 选择桌面图标设置,选择需要更改的桌面图标,点击更改图标 选择喜欢的图标,或点击浏览选择喜欢的图标(图标文件*.ico,*. ...

最新文章

  1. R语言ggplot2可视化条形图可视化控制底部和x轴之间没有空格实战:即条形图的底部直接和坐标轴连接
  2. HackTheGame 攻略 - 第三关
  3. android系统各个输出log对应层次文件
  4. 第一周 01-复杂度2 Maximum Subsequence Sum
  5. kali linux 桌面消失_kalilinux系统设置不见了的解决方案
  6. confluence启动不起来_汽车“一键启动”只用来点火?太浪费!你不知道的还有这3个功能...
  7. 感谢Thunder团队
  8. java单引号转义_Java基础入门——Java语言基础(上)
  9. Python 入门网络爬虫之精华版
  10. 通过Rancher部署并扩容Kubernetes集群基础篇一
  11. walle 2.0 上线部署
  12. 使用AIDL实现进程间的通信之复杂类型传递
  13. 解决 Chrome 浏览器地址栏字体发虚模糊
  14. 深度分析数据库的热点块问题
  15. java大厂技术面试第二课 多线程和锁
  16. 51单片机使用 8线/4线/PCF8574(I2C) 驱动 LCD1602
  17. Arduino基础语法
  18. 三维扫描仪[4]——标定·Matlab单目标定
  19. 《用户体验设计:100堂入门课》20190920
  20. 浅析信号端口中电阻与TVS管对浪涌防护的影响

热门文章

  1. Android 性能优化 - 彻底解决内存抖动
  2. 树莓派应用之家庭网络中部署一台可在公网提供服务的低功耗服务器
  3. Nodejs学习计划
  4. 王者荣耀 服务器位置 移动,王者荣耀怎么转区 王者荣耀角色迁移操作方法
  5. 手机内存不足?不要胡乱清理了,学会了让手机空间瞬间释放!
  6. c# 微信支付V3商家转账到零钱避坑宝典(二)
  7. 正当防卫CSP(content security policy)
  8. Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker、docker run docker
  9. 计算机主板是cpu吗,电脑主板和CPU如何搭配?每日一答
  10. Dell Precision 7920维护历程之BIOS 误警报