我需要在用户打开我的应用后5-10秒内获取设备上安装的所有应用的列表.
这是因为,它需要大约.对于我的Android应用程序的典型用户,请求5-10秒,以请求有关设备上安装的应用程序的信息.
为了相关,我必须在每次加载应用程序时创建已安装应用程序列表的新副本.
但是,使用下面的代码在四核Android设备上花费超过30秒.400个应用程序(系统和已安装 - 我需要两个).
我在"创建时"执行了代码,但没有人会等待30秒才能打开应用程序.所以我把它移到AsyncTask,所以我的应用程序打开immediadetelly.但仍然需要+30秒; 如果在加载列表之前有人要求提供特定的应用程序,他们可能无法获得正确的信息.
为什么这段代码这么慢?我该怎么做才能加快速度呢?我会向任何可以提高10倍或者给我一个很好的小费的人支付金币.
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
InstalledAppsName.add(packageInfo.loadLabel(pm).toString());
CountApps=CountApps+1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |