赞
踩
目录
[隐藏]
1 1.Launcher桌面数据和主菜单数据加载流程
1.1 1.1 加载主菜单数据
1.1.1 1.加载调用流程
1.2 1.2 加载桌面数据
1.3 1.3 插入SIM卡时候的数据加载的问题
1.4 1.4 经典Bug
1.4.1 166085
[编辑]1.Launcher桌面数据和主菜单数据加载流程
[编辑]1.1 加载主菜单数据
PackageManager中加载应用程序数据结构,AppwidgetsManager中加载小部件数据结构,从Favorites数据库中加载桌面数据结构
[编辑]1.加载调用流程
LoaderTask一个任务是加载桌面,一个任务是加载抽屉,同步(一个接一个)进行。LauncherModel:waitForIdle()方法用于等待桌面加载完成再加载抽屉。
等待从favorite表中loadAndBindWorkspace的完成,即完成 桌面的数据 从数据库到内存对象的加载,并且已经显示到了桌面Workspace,
然后开始loadAndBindAllApps加载主菜单的数据(PackageManager) ,在launcher-loader 子线程获取数据后通过mHandler.postIdle() mHandler.post()将任务post到主线程任务队列DefferedHandler:mQueue中更新UI。
/** Runs the specified runnable
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。