首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制从UI线程调用类方法

强制从UI线程调用类方法
EN

Stack Overflow用户
提问于 2013-12-11 18:02:30
回答 3查看 75关注 0票数 1

我创建了一个类,我希望它的方法只能从一个特定的线程调用,例如,ui-thread。这与android网络api中的情况完全相反……当从ui-thread调用它时,它会抛出异常。我如何在android中做到这一点?谢谢

EN

回答 3

Stack Overflow用户

发布于 2013-12-11 18:09:00

将此代码放入类方法中。

代码语言:javascript
复制
   if(!"UI thread".equals(Thread.currentThread().getName())){
    throw new IllegalStateException("wrong thread running this class, thread name:"+Thread.currentThread().getName());
    }
票数 1
EN

Stack Overflow用户

发布于 2013-12-11 18:12:09

这就是MFC的工作方式:

MFC窗口类有许多方法,它们并不执行期望它们执行的操作,而是将消息发送或发送到GUI/主线程侦听的队列。

因此,您需要使用现有的跨线程消息传递机制,或者创建自己的机制。

票数 0
EN

Stack Overflow用户

发布于 2013-12-11 18:05:08

好吧,你甚至可以在你的班级里这样做。只需获取调用者活动的上下文。在该方法中,执行context.runOnUIThread()

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20516066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档