这个问题主要是,sd卡还没加载完,adw就去调用
queryIntentActivities
读取程序列表,代码如下
final List<ResolveInfo> apps = packageManager.queryIntentActivities(
mainIntent, 0);
然后存到缓存中,这样当然会导致读取不完整咯。如果你在这段代码之后把apps.size()打印出来,就会发现,程序个数不太稳定
解决方案如下:将Launcher.java
的
public void showAllApps(boolean animated, AppCatalogueFilter filter)
方法最后加上两句话
sModel.abortLoaders();
sModel.startApplicationsLoaderLocked(this,true);
再试一下,问题应该就解决了