如何从其他线程优雅地访问Android视图?

如何从其他线程优雅地访问Android视图?,android,multithreading,asynchronous,twitter4j,Android,Multithreading,Asynchronous,Twitter4j,我在异步模式下使用Twitter4j。当我在Listener中得到响应时,我希望能够更改活动中的某些视图,但这会导致调用FromErrorThreadException 我知道我可以使用runOnUiThread方法,但是除了内联可运行类之外,最优雅的解决方案是什么 我活动的一部分: TwitterListener listener = new TwitterAdapter() { @Override public void gotUserDetail(

我在异步模式下使用Twitter4j。当我在Listener中得到响应时,我希望能够更改活动中的某些视图,但这会导致
调用FromErrorThreadException

我知道我可以使用
runOnUiThread
方法,但是除了内联可运行类之外,最优雅的解决方案是什么

我活动的一部分:

    TwitterListener listener = new TwitterAdapter() {

        @Override
        public void gotUserDetail(User user) {
            super.gotUserDetail(user);

            fillInUserProfileDetails(user); 

我认为没有比
Activity.rununuithread(Runnable)
View.post(Runnable)
更“优雅”的解决方案了。您可能已经在Android文档中看到了关于线程的讨论:

编辑:

如上所述,Android UI toolkit不是线程安全的,因此与它的所有交互必须发生在同一线程上,即应用程序的UI线程;如果要将工作从一个线程传递到另一个线程,则需要一个可运行对象来封装要执行的工作

我知道匿名内部类可能看起来相当混乱,但它们在Java中是非常常见的习惯用法,因为它们是该语言中最接近可用的东西。因此,IMO,你最好咬紧牙关,使用
Activity.rununuithread(Runnable)
,并提醒自己优雅是程序员眼中的