【发布时间】:2012-06-27 06:30:55
【问题描述】:
我有一个启动和维护后台线程的 Android 服务。
后台线程不时需要对主线程进行回调。我对如何做到这一点感到困惑。
我不能调用 this.runOnUiThread,因为“this”是 Service 的一个实例,而不是 Activity,而且 Service 没有 runOnUiThread 方法。
我也无法创建或执行 AsyncTask,因为 AsyncTask 的文档说构造函数和执行方法都必须从 UI 线程调用。
我是否需要维护对正在使用该服务的活动的引用并调用其 runOnUiThread 方法,或者是否有其他方法可以在 UI 线程上运行某些东西?
谢谢。
【问题讨论】:
-
"后台线程需要在主线程上做回调" -- 为什么?
-
服务的用户是一个activity。它需要在主线程上进行回调,以便更新 UI 元素。我想我可以在后台线程上回调它并让它负责调度 UI 线程回调,但如果我能做到这一点,对服务的使用者来说会更方便。
-
@Cruceo:哦,天哪。