【问题标题】:Accessing Thread Started By Service访问由服务启动的线程
【发布时间】:2011-06-23 14:12:18
【问题描述】:

我在理解这个想法时遇到了一些麻烦,我想要一些意见。我从我的初始活动开始一项服务,该活动在onCreate() 中运行一个新线程(在这种情况下实现 Runnable 的类,而不是扩展线程)。该线程首先创建一个 TCP 客户端套接字,然后随着应用程序运行、活动切换等在后台每隔 X 秒开始发送请求和接收响应。但是,我需要能够从我的所有活动中访问该线程,以告知它在触发 UI 元素时发送自定义请求。可以从静态上下文访问该服务,但是当我尝试访问正在运行的线程实例时,我收到与在主线程上执行网络操作相关的错误,这意味着它不是实际实例,而是我正在访问的 UI 线程。我想过在共享的Application 类中实现一个消息队列,该服务可以轮询新消息,但这看起来很难看。也许我正在解决这个问题,并且有更好/更清洁的方法来解决这个问题?任何建议或帮助将不胜感激。

【问题讨论】:

标签: android multithreading service android-activity


【解决方案1】:

您可以使用Looper/Handler 机制向线程发送消息。

【讨论】:

  • 谢谢,这是我最终选择的方向,而且看起来效果很好。出于某种原因,我最初忽略了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2023-03-29
  • 2017-01-26
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多