【发布时间】:2016-02-09 00:44:54
【问题描述】:
我正在为安卓开发蓝牙聊天。这就是问题所在:
我的主要活动A启动了一个线程来管理bt连接,然后A启动了一个新的活动B。我必须知道一种方法可以将字符串从活动B不断发送到主要活动A中调用的线程。我该怎么办它?
【问题讨论】:
标签: java android multithreading android-activity bluetooth
我正在为安卓开发蓝牙聊天。这就是问题所在:
我的主要活动A启动了一个线程来管理bt连接,然后A启动了一个新的活动B。我必须知道一种方法可以将字符串从活动B不断发送到主要活动A中调用的线程。我该怎么办它?
【问题讨论】:
标签: java android multithreading android-activity bluetooth
如果直接启动一个线程,则无法从另一个活动中访问该线程,并可能导致内存泄漏。
您最好的选择是使用单独的Service 来管理蓝牙连接。
您可以拥有一个单独的Service 并从Service 启动tread(Service 在主线程中运行)。
而且您必须小心Service 的启动和停止。
有2种方式来启动Service,
您可以启动 Service 或者您可以绑定 到 Sstrong 文本服务。
在您的情况下,您必须在可以绑定到 Activity A 和 Activity B 的服务表单中启动服务,或者您可以在 Activity A 中启动服务并从 Activity B 绑定到它。
但您唯一需要注意的是何时停止服务。否则会出现内存泄漏。
一旦服务启动并运行,您就可以从您的 Activity 与它进行通信。并且您可以将任何信息传递给在 Service 组件中运行的线程。
您可以在processes-and-threads 和services 阅读此内容
【讨论】:
您可以通过绑定和回调接口来实现。 请参考旧帖。
【讨论】: