1,Launcher.java
通过log打印,onCreate里面没有加载列表,在onResume里面:
if (mOnResumeState != State.APPS) {
Log.d(TAG, "onResume() 4");
tryAndUpdatePredictedApps();---------这里更新APP
}
继续看tryAndUpdatePredictedApps
List<ComponentKeyMapper<AppInfo>> apps = mLauncherCallbacks.getPredictedApps();
if (apps != null) {
mAppsView.setPredictedApps(apps);------mAppsView这个就是加载的APP列表了
Log.d(TAG, "tryAndUpdatePredictedApps csh 3");
}
继续看mAppsView:@Thunk AllAppsContainerView mAppsView;
查看mAppsView.setPredictedApps:
public void setPredictedApps(List<ComponentKeyMapper<AppInfo>> apps) {
mApps.setPredictedApps(apps);------继续跟踪
}
关键的地方来了:
public void setPredictedApps(List<ComponentKeyMapper<AppInfo>> apps) {
mPredictedAppComponents.clear();
mPredictedAppComponents.addAll(apps);
List<AppInfo> newPredictedApps = processPredictedAppComponents(apps);
// We only need to do work if any of the visible predicted apps have changed.