我的服务中有一个方法必须从一个线程中调用,但我不希望该代码在线程中执行。
如果我没有活动并且我从服务中调用它,我怎么能调用runOnUiThread?
感谢。
我对AsyncTask解决方案不感兴趣!
答案 0 :(得分:7)
也许Handler
可以帮到你。 Handler是与创建的线程相关联的元素,您可以将带有代码的runnable发布到Handler,并且runnable将在创建Handler的线程中执行。
信息链接: http://developer.android.com/reference/android/os/Handler.html
答案 1 :(得分:2)
你滥用的词语令人费解。 runOnUiThread
是在MAIN线程上运行代码的辅助方法。通常,当您尝试从工作线程更新UI时,可以使用此方法。由于Service
没有UI,因此runOnMainThread似乎非常不合适。
您的问题应该改为以下任何一种:
使用AsyncTask
或IntentService
。
Activity
runOnUiThread
中可以使用。)在Handler
他的MainThread上创建Service
并在其上发布Runnables
/向其发送消息。