1.前言
在11.0的系统ROM定制化开发中,在Launcher3的系统原生桌面中,在显示桌面的时候,在禁用和启用app的功能测试的时候,会发现有多个相同app的图标显示在桌面
这对Launcher3的体验效果不是很好,所以为了优化产品,需要解决这个bug,然后让产品更完善
2.桌面显示多个相同app图标的解决办法的核心类
packages/apps/Launcher3/src/com/android/launcher3/model/PackageUpdatedTask.javapackages/apps/Launcher3/src/com/android/launcher3/LauncherModel.java
3.桌面显示多个相同app图标的解决办法的核心功能分析和实现
在实现Launcher3桌面显示多个相同app图标的解决办法的中,LauncherModel是Android桌面应用程序的一个关键组件,在启动过程中通过加载应用程序数据、创建应用程序图标和布置桌面等操作来准备好展示用户的视图,所以经过分析觉得LauncherModel是特别的重要的类,是Launcher3处理数据的核心,LauncherModel是Launcher的数据中心,但是数据中心的数据是怎么加载出来的呢,这里就要说到LoaderTask了,它是LauncherModel的核心任务,LoaderTask在绑定数据的过程中会产生不同的过程状态信息,这些信息会通过回调接口通知LauncherModel对数据处理的状态信息
PackageUpdatedTask类继承于BaseModelUpdateTask,在BaseModelUpdateTask的execute()方法中,主要负责更新app的安装 卸载等刷新数据的功能