我有這個代碼來加載圖標和應用程序名稱,但它對於超過50個應用程序很慢,它需要7-8秒加載,如何加載應用程序名稱和圖標更快?如何提高圖標和應用程序名稱的加載性能?
private void loadApps() {
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
InternalDataManager.apps = getPackageManager()
.queryIntentActivities(mainIntent, 0);
PackageManager pm = getPackageManager();
for (int i = 0; i < InternalDataManager.apps.size(); i++) {
ResolveInfo info = InternalDataManager.apps.get(i);
// PInfo holds name and icon
PInfo infoP = new InternalDataManager.PInfo();
infoP.appname = info.activityInfo.applicationInfo.loadLabel(pm)
.toString();
infoP.icon = info.activityInfo.loadIcon(pm);
infoP.pname = info.activityInfo.applicationInfo.packageName;
}
}
該代碼應該需要幾毫秒的時間才能運行。你怎麼確定這是你的問題的代碼塊? Traceview指出,對於那些速度緩慢的具體電話,這是什麼意思? – CommonsWare 2012-04-05 11:55:14
加載圖標需要時間,真的時間 – Ata 2012-04-05 12:02:07
'loadIcon()'應該花費很少的時間。這個示例項目可以在一眨眼之間提出一個充滿了可啓動項目的ListView:https://github.com/commonsguy/cw-advandroid/tree/master/Introspection/Launchalot – CommonsWare 2012-04-05 12:29:25