我创建了一个类,我希望它的方法只能从一个特定的线程调用,例如,ui-thread。这与android网络api中的情况完全相反……当从ui-thread调用它时,它会抛出异常。我如何在android中做到这一点?谢谢
发布于 2013-12-11 18:09:00
将此代码放入类方法中。
if(!"UI thread".equals(Thread.currentThread().getName())){
throw new IllegalStateException("wrong thread running this class, thread name:"+Thread.currentThread().getName());
}发布于 2013-12-11 18:12:09
这就是MFC的工作方式:
MFC窗口类有许多方法,它们并不执行期望它们执行的操作,而是将消息发送或发送到GUI/主线程侦听的队列。
因此,您需要使用现有的跨线程消息传递机制,或者创建自己的机制。
发布于 2013-12-11 18:05:08
好吧,你甚至可以在你的班级里这样做。只需获取调用者活动的上下文。在该方法中,执行context.runOnUIThread()
https://stackoverflow.com/questions/20516066
复制相似问题