android图标动态刷新,动态更新桌面图标 icon |
您所在的位置:网站首页 › 安卓时钟图标动态 › android图标动态刷新,动态更新桌面图标 icon |
每当双11或者节假日,安卓的桌面图标会更换成带有节日元素的 icon,今天一探究竟,如何实现的。 需要用到的知识:activity-alias alias 英 [ˈeɪliəs] 美 [ˈeliəs, ˈeljəs] n. 别名,化名; 顾名思义,activity-alias并不是代表一个Activity,而是代表一个已经存在的Activity的别名。 它使用在清单文件中,类似Activity标签。它可用来设置某个Activity的快捷入口 activity-alias基本用法 android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:targetActivity="string" > ... 属性说明 属性表 代码示例 android:name=".ui.jingdong618" android:enabled="false" android:icon="@mipmap/normal_listner" android:label="切换名称1" android:targetActivity=".ui.MainActivity"> activity-alias 可以预存多个,然后根据条件去替换对应的icon,及设置桌面app 名称 android:name=".ui.MainActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:launchMode="singleTask" android:screenOrientation="portrait"> - - - -在Activity 中: // 声明 要替换的别名 String currentString = "com.qhpc.fangzhou.ui.jingdong618"; // 替换方法 public void changeIcon(String activityPath) { PackageManager pm = getPackageManager(); pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(new ComponentName(this, activityPath), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0); //重启桌面 加速显示 // restartSystemLauncher(pm); } public void restartSystemLauncher(PackageManager pm) { ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE); Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_HOME); i.addCategory(Intent.CATEGORY_DEFAULT); List resolves = pm.queryIntentActivities(i, 0); for (ResolveInfo res : resolves) { if (res.activityInfo != null) { am.killBackgroundProcesses(res.activityInfo.packageName); } } } @Override protected void onDestroy() { changeIcon(); super.onDestroy(); } 说明: 我们依赖后端接口告知我们需要替换桌面icon了,这时候,我们将预先放置的icon 对应的别名 currentString 赋值,然后存在本地(sharePreference )存储,为空才去替换, 放在启动页的onDestroy 方法中去替换是考虑到,这样替换的话跟随用户手动退出操作就做了桌面icon的替换,用户无感知; |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |