Frage

Ich habe ein Widget auf dem Android-Markt genannt DigiClock Widget bekam, und nach dem letzten Update habe ich einige sehr seltene und zufällige Probleme wurden mit auf verwurzelt Motorola Droids (es andere Handys mit dem Problem sein kann, aber die einzige Antworten ich habe droid Benutzer hatten, sind von verwurzelt). Das Problem tritt auf, wenn eine Aktivität gestartet wird, dass läuft eine AsyncTask dass abruft alle installierten Anwendungen aus dem Gerät, während eine ProgressDialog (Horizontal-Stil) zeigen. Die gültige Java-Code-Datei finden Sie hier:

http : //code.google.com/p/android-digiclockwidget/source/browse/trunk/src/com/davidgoemans/simpleClockWidget/LauncherChooser.java

Wenn Sie diff wollen die Änderungen zwischen einer Arbeits- und Nicht-Arbeitsversion, die hier gefunden werden kann:

http://code.google.com/p/android-digiclockwidget/source/diff?spec=svn10&old=7&r=9&format=side&path=/trunk/src/com/davidgoemans/simpleClockWidget /LauncherChooser.java

Was auf dem Droiden zu passieren scheint, ist: * Fortschritte Feld erscheint * Fortschritte Feld abbricht, bevor es fertig ist Laufen * Leere Liste zeigt nach oben

Es scheint, wie die AsyncTask, dass die Anwendungen holt getötet zu werden. Ist das möglich?

Danke, David

Bearbeiten :

Gefunden das Problem, stellt sich heraus, dass in Android 2.0 (nicht 2.1 oder 1.6)

Liste Pakete = getPackageManager () getInstalledPackages (PackageManager.GET_ACTIVITIES);.

stürzt in meiner Situation, aber

Liste Pakete = getPackageManager () getInstalledPackages (0);.

nicht.

War es hilfreich?

Lösung 2

Gefunden das Problem , stellt sich heraus, dass in Android 2.0 (nicht 2.1 oder 1.6)

List packages = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

stürzt in meiner Situation, aber

List packages = getPackageManager().getInstalledPackages(0);

nicht. Ich fand dies in dem 2.0-Emulator zu testen. Dies ergänzt die Schmerzen, die meine app testen jetzt auf 1.5, 1.6, 2.0 und 2.1 statt nur den Rand Fälle: /

Andere Tipps

Ich bin nicht sicher, ob es die Ursache der Symptome, aber ich kann einige Probleme mit dem Code sehen:

  • Sie müssen nicht manipulieren UI-Objekte wie Ihr ProgressDialog von jedem Thread mit Ausnahme des Haupt-UI-Thread, da UI-Objekte sind nicht thread-sicher. Statt Aufruf progressDialog.setProgress (), Call AsyncTask.publishProgress () und dann AsyncTask.onProgressUpdate außer Kraft setzen ().

http://developer.android.com/resources/articles/painless -threading.html

  • Auch der Code nicht daran hindert, beide Fäden von „menuEntries“ zur gleichen Zeit zugreifen. Der einfachste Weg, um diesen Teil zu beheben wäre, um den Anruf zu setListAdapter () aus onCreate () und in OnPostExecute () zu bewegen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top