6

我的服务中有一个方法必须从线程中调用,但我不希望该代码在线程中执行。

如果我没有活动并且我从服务中调用它,我该如何调用 runOnUiThread?

谢谢。

我对 AsyncTask 解决方案不感兴趣!

4

2 回答 2

7

也许aHandler可以帮助你。Handler 是与创建的线程相关联的元素,您可以将带有代码的 runnable 发布到 Handler,并且该 runnable 将在创建 Handler 的线程中执行。

资料链接:http: //developer.android.com/reference/android/os/Handler.html

于 2012-10-03T11:54:53.763 回答
3

您滥用的单词数量令人费解。runOnUiThread是在主线程上运行代码的辅助方法。通常,当您尝试从工作线程更新 UI 时会使用此方法。由于 aService没有 UI,因此 runOnMainThread 似乎非常不合适。

您的问题应改写为以下任一问题:

  • 如何在 MainThread 之外运行我的代码?

使用AsyncTaskIntentService

  • 当我当前在另一个线程中时,如何在 MainThread 上执行代码。(通常Activity runOnUiThread可以使用。)

Handler在您Service的主线程上创建一个并Runnables在其上发布/向其发送消息。

于 2012-10-03T11:27:30.257 回答