2010-07-07 31 views
2

我遇到以下问题: 我的应用有一个线程可更新游戏状态。该应用程序需要更改由此线程触发的View对象的状态。 View的文档声明它只能从UI线程修改,并且应该使用Handler来放置和处理事件。Android:将事件发布到View的消息队列

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

我很困惑!

+0

不太相关,但看看'AsyncTask'这是一个线程,可以帮助你,因为它的进度/结果方法在UI线程上运行。 – Pentium10 2010-07-07 20:14:18

回答

2

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

2

如果你想运行从后台线程UI线程上的一些任意代码,您可以用活动的runOnUiThread():

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

     } 
    }); 
相关问题