Android视图不爽快

时间:2014-04-10 21:49:48

标签: android

在我收到来自互联网的东西的帖子中,我想通知用户,我做了类似

的事情
new Thread(new Runnable(...
   ...
   Log.d("tag", "going to redraw");
   findViewById(R.id.view).setVisibility(View.VISIBLE);
   findViewById(R.id.view).refreshDrawableState();  // tried this
   findViewById(R.id.view).invalidate();  // and this together and separately
 ).start();

始终查看日志,有时查看显示的视图。我不知道发生了什么

我试图在findViewById中加入runOnUIThread,但也没有完成这项工作。对此有何提示?

2 个答案:

答案 0 :(得分:2)

不要修改UI线程以外的线程中的UI!使用HandlerActivity.runOnUiThread()

答案 1 :(得分:0)

当您不在主Thread时,您需要使用postInvalidate()上的View代替invalidate()

From the docs

  

导致在事件循环的后续循环中发生无效。使用此选项可以从非UI线程中使视图无效。

From the docs for invalidate()

  

必须从UI线程调用它。