公司任务:
通过广播,动态更改图标样式。
1.在LauncherAppState.java文件下动态注册广播:
filter=new IntentFilter("com.example.zhou"); sContext.registerReceiver(mModel,filter);2.在LauncherModel.java文件下onReceive()方法下添加对广播事件的处理:
其中forceReload()为强制刷新桌面。
String aaaa=intent.getAction(); if ("com.example.zhou".equals(aaaa)){ forceReload(); }3.在LauncherModel.java文件下的getShortcutinfo()方法内添加筛选需要改变图标的应用程序:
PackageInfo pi = null; try { pi = manager.getPackageInfo( componentName.getPackageName(), 0); if (pi.packageName.equals("com.example.zhouyuchen.test")) { info.setIcon(BitmapFactory.decodeResource(_context.getResources(), R.mipmap.kc)); } else { info.setIcon(icon); } } catch (NameNotFoundException e) { e.printStackTrace(); }其中info.setIcon(icon)为原始图标式样。