强制从ui线程调用类方法

时间:2013-12-11 10:02:30

标签: android multithreading ui-thread

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

3 个答案:

答案 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()