这个问题主要是,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);再试一下,问题应该就解决了
本文解决了一个SD卡加载未完成时使用adw调用queryIntentActivities读取程序列表导致结果不稳定的问题。通过在Launcher.java的showAllApps方法中加入两行代码sModel.abortLoaders(); sModel.startApplicationsLoaderLocked(this,true),可以解决此问题,确保程序个数稳定。

被折叠的 条评论
为什么被折叠?



