2012-04-03 8 views
2

私はアプリケーションを作って、onCreateメソッドの中には16種類のサウンドプールをロードしました。すべて正常に動作しますが、非常に遅く始まります。アプリアイコンをクリックした後、約3秒間は何も起きていないので、アクティビティが開始されます。アイコンをクリックした後に最初に開始されるローディング通知のようなものを作成し、すべてのサウンドプールの準備ができたら非表示にする方法。助けてくれてありがとうSoundpool onloadcomplete notification

答えて

1

SoundPoolをバックグラウンドスレッドで初期化することができます。これをAsyncTaskでラップすると、AsyncTask.onPreExecuteでProgressDialogを表示し、AsyncTask.onPostExecuteでダイアログを閉じることができます。そうすればonCreateをブロックすることはなく、UIを表示するためにサウンドが読み込まれるまでアクティビティを待つ必要はありません。

+0

お返事ありがとうございます。あなたはそれを行う方法が示されているリンクをいくつか持っていますか? – user1275995

+0

ここにはSOの他、ウェブの他の場所にたくさんの例があります。 ProgressDialogを使ったAsyncTaskは非常に一般的なことです。 Googleの「asynctask progressdialog」では、たくさんの例が表示されます。 3つの汎用引数すべて(AsyncTask )に対してAsyncTaskをVoidにして、AsyncTask.doInBackgroundでSoundpoolの初期化を行うだけです。 – Rich

+0

ありがとう – user1275995