Ich habe diesen Code, um Symbol und Anwendungsname zu laden, aber es ist langsam für mehr als 50 Anwendung und es dauert 7-8 Sekunden zu laden, wie Anwendungsname und Symbol schneller laden?Wie kann die Ladegeschwindigkeit von Symbolen und Anwendungsnamen verbessert werden?
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;
}
}
Dieser Code sollte ein paar Millisekunden dauern. Wie haben Sie festgestellt, dass dieser Block Ihr Problem ist? Was hat Traceview Ihnen im Hinblick auf die spezifischen Anrufe, die langsam waren, aufgezeigt? – CommonsWare
Load Icons nehmen Zeiten, wirklich mal – Ata
'loadIcon()' sollte sehr wenig Zeit in Anspruch nehmen. Dieses Beispielprojekt kann im Handumdrehen einen '' ListView' 'erzeugen, der mit abschießbaren Elementen gefüllt ist: https://github.com/commonsguy/cw-advandroid/tree/master/Introspection/Launchalot – CommonsWare