700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android动态修改桌面图标新坑总结

Android动态修改桌面图标新坑总结

时间:2023-01-12 18:16:29

相关推荐

Android动态修改桌面图标新坑总结

一.优秀文章概述

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

《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()ponent = ComponentName(applicationContext,"$packageName${iconList[SPUtils.getInt("currentIconIndex", 0)]}")context.startActivity(mainIntent)}

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。