3

所以我有这个扩展类的Thread类。我使用线程将我的手机连接到蓝牙设备并保持连接。

一旦建立连接(或一旦用户与 GUI 交互),我需要传递给另一个 Activity。我想随身携带刚刚创建的线程,以便与它进行交互(停止它、重新启动它、修改它的状态)。

我应该让这个线程实现Serializable (或Parcelable)并将其作为普通的 Extra 附加到调用另一个 Activity 的 Intent 中吗?可能/正确/方便吗?

如果答案不是,我想知道为什么以及哪种方法是实现此类事情的最正确方法。

谢谢你。

4

1 回答 1

4

好吧,Thread 独立于 Activity,不管它是在那里创建的还是它的内部类(如果你的 Thread 保持对第一个活动的引用,你很可能会在那里泄漏内存)。如果您希望您的线程完全独​​立于 Activity,您应该考虑简单地分离该功能。一种方法是Application在那里扩展和移动所有代码。那么无论如何,只要您的应用程序对象存在,您的线程就可以通过它轻松访问。正如 CommonsWare 提醒的那样,其他选择是仅使用常规Service并将此蓝牙通信工作委托给它。无论您选择哪种方式,它都会比尝试在这里和那里传递 Thread 更简单和更好。

于 2012-09-11T16:53:27.547 回答