私のクイズアプリが初めて起動するとき、データベースやその他のいくつかに質問を追加する必要があり、これには数秒かかります。これが発生している間、不確定なプログレスバーを表示したいと思います。質問が追加されると、クラスはfinish()を呼び出し、メイン画面に移動します。問題は、finishが呼び出されない限り、レイアウトが描画されないことです。oncreateとonstartが呼び出されるまで、XMLレイアウトは描画されないと思います。では、どうすればこれを回避できますか?
質問する
845 次
2 に答える
1
AsyncTaskを使用してonPreExecute
、進行状況ダイアログを表示しonPostExecute
、データベースの準備を終了しますdoInBackground
。
DialogFragmentを使用してダイアログを表示しない限り、デバイスの回転を処理する必要があります。
于 2012-11-25T19:49:59.690 に答える
1
DBを埋めている間、UIが表示されないのは、おそらく、アプリケーションのメインスレッドであるUIスレッドでそれを行っているためです。スレッドはDBの入力でビジー状態であるため、UIを表示したり、進行状況インジケーターをアニメーション化したり、ユーザーの操作に反応したりする時間はありません。
したがって、時間のかかるタスクは常に別のスレッドで実行する必要があります。詳細とそれを正しく行うには、Androiddevloperのブログの痛みのないスレッドに関するこの優れたエントリを参照してください。
于 2012-11-25T20:02:24.070 に答える