2

できるだけ早くコンテンツをディスプレイにフラッシュしたいのですが、UI スレッドに設定したいセットアップ コードに時間がかかりすぎています。すべてが完了するまで、画面には何もレンダリングされません。

したがって、少なくとも 100 ミリ秒の遅延で View.postDelayed(Runnable, long) を実行すると、セットアップが開始される前にレイアウトがレンダリングされます。私がやりたいのは、onResume (たとえば) で画面にレイアウトをレンダリングしてから、セットアップを続行することです。

私が探しているのは、ルーパーが MessageQueue を空にし、このメソッドが呼び出されるまですべてをレンダリングしてから、メッセージの処理を続行することを確認する方法です。

おそらくバックグラウンド スレッドでセットアップを実行する必要がありますが、これは他のことを複雑にします。

4

1 に答える 1

0
final Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) 
        {
           dialog.dismiss();

        }

    };
  dialog = ProgressDialog.show(Activity.this, "", "Loading ...", false);

            new Thread() 
              {
                public void run()
                 {
                    while(Condition)
                      {
                         do Something
                      }
                    handler.sendEmptyMessage(0);
                 }
               }.start();
于 2012-05-16T13:22:17.943 に答える