2012-04-03 8 views
2

Ich habe eine Anwendung erstellt und innerhalb onCreate Methode ich 16 verschiedene Soundpools laden. Alles funktioniert gut, aber es beginnt sehr langsam. Ich meine, nachdem ich auf ein App-Symbol geklickt habe, passiert für ca. 3 Sekunden nichts, dann beginnt meine Aktivität. Wie man eine Ladebenachrichtigung erstellt, die zuerst nach einem Klick auf das Symbol beginnt und sich dann versteckt, wenn alle Soundpools bereit sind. Vielen Dank für Ihre HilfeSoundpool onloadcomplete Benachrichtigung

Antwort

1

Sie können den SoundPool in einem Hintergrundthread initialisieren, und wenn Sie dies in eine AsyncTask umbrechen, können Sie in AsyncTask.onPreExecute einen ProgressDialog anzeigen und das Dialogfeld in AsyncTask.onPostExecute schließen. Auf diese Weise blockieren Sie nicht in onCreate und Ihre Aktivität muss nicht warten, bis die Sounds geladen sind, um die Benutzeroberfläche anzuzeigen.

+0

Danke für die Antwort, haben Sie einige Links, wo es gezeigt wird, wie man das macht? – user1275995

+0

Es gibt Unmengen von Beispielen hier auf SO und anderswo im Internet. AsyncTask mit einem ProgressDialog ist eine sehr häufige Sache. Google "asynctask progressdialog" und Sie werden eine Menge Beispiele sehen. Sie können Ihre AsyncTask mit Void für alle drei generischen Argumente machen (AsyncTask ) und tun Sie einfach Ihre Soundpool-Initialisierung in AsyncTask.doInBackground – Rich

+0

Danke für die Antwort – user1275995

Verwandte Themen