加载完workspace的数据后,接下来就开始加载所有应用界面的数据了。通过LauncherModel.loadAndBindAllApps()完成所有应用界面的加载过程,代码如下:
private void loadAndBindAllApps() {
if (!mAllAppsLoaded) {
loadAllApps();
synchronized (LoaderTask.this) {
if (mStopped) {
return;
}
mAllAppsLoaded = true;
}
} else {
onlyBindAllApps();
}
}
以上代码分两种情况,如下图:
情况一:数据还未加载时,执行loadAllApps(),不要被它的方法名所误导,该方法实际上完成了load和bind的操作,代码如下: