强制刷新UiThread android的MessageQueue

时间:2012-05-16 12:33:53

标签: android handler message-queue ui-thread looper

我想尽快将内容刷新到显示器,但我想要在UI线程上设置的设置代码花费的时间太长。一切都完成后,屏幕上没有任何渲染。

因此,如果我执行View.postDelayed(Runnable,long),延迟时间至少为100毫安,则会在设置开始之前渲染布局。我想要做的是在onResume(例如)的屏幕上呈现布局,然后继续设置。

我正在寻找的方法是确保Looper清空它的MessageQueue并呈现所有内容,直到调用此方法,然后继续处理消息。

我可能应该在后台线程中运行安装程序,但这会使其他事情复杂化。

1 个答案:

答案 0 :(得分: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();