Android:将事件发布到View的消息队列

时间:2010-07-07 20:09:08

标签: android view

我有以下问题: 我的应用程序有一个更新游戏状态的线程。应用程序需要更改由此线程触发的View对象的状态。 View的文档指出它只应该从UI线程修改,并且应该使用Handler来放置和处理事件。

然而,View中有一个函数post(),我可以发布一个Runnable对象,该对象将在UI线程中执行而不涉及Handler。我不能从UI线程以外的线程调用此函数吗?

我很困惑!

2 个答案:

答案 0 :(得分:2)

是的,您可以使用View.post()。在内部,它使用处理程序发布Runnable。

答案 1 :(得分:2)

如果要从后台线程在UI线程上运行一些任意代码,可以使用Activity的runOnUiThread():

   runOnUiThread(new Runnable() {
        @Override
        public void run() {

        }
    });