我创建了一个类,我希望它的方法只能从一个特定的线程调用,例如,ui-thread。 这与android网络api中发生的情况完全相反......当从ui线程调用它时会引发异常。 我怎么能在android中做到这一点? 感谢名单
答案 0 :(得分:1)
将此代码放入您的类方法中。
if(!"UI thread".equals(Thread.currentThread().getName())){
throw new IllegalStateException("wrong thread running this class, thread name:"+Thread.currentThread().getName());
}
答案 1 :(得分:0)
这种行为是MFC的工作原理:
MFC Window类有许多方法不能执行它们所期望的内容,而是将消息发送或发送到GUI /主线程侦听的队列。
因此,您需要使用现有的跨线程消息传递机制或创建自己的。
答案 2 :(得分:-3)
嗯,你甚至可以在课堂上做到这一点。
只是,获取调用者活动的上下文。在方法中,执行context.runOnUIThread()