2010-11-24 66 views
4

我正在开发涉及蓝牙通信的应用程序。即使设置连接的活动关闭,蓝牙通信也应该继续。首先,我曾考虑过使用服务,这似乎是正确的方式。但是,在蓝牙聊天例子中,通信发生在另一个线程中,而不是在服务中。我在我的应用程序中使用了该代码并正常工作。正在使用线程进行蓝牙通信吗?还是仅需要使用服务?蓝牙通信应该是活动的,直到我的应用程序在RAM中,并且不应该在活动之间切换。Android中的线程或服务中的蓝牙通信?

+0

有人可以让我知道它是否适合在线程中进行蓝牙通信而不是在服务中?我已经尝试过使用线程并且现在正在工作,但希望确保以后我不需要更改代码。 – sunil 2010-11-30 05:31:21

回答

0

那么一个独立的线程并不是不同于你的服务,除非它遵循Android的活动生命周期,但是一个线程可能会被终止并且没有状态可以被恢复。一旦它被杀死,Android将尝试重新启动服务。

0

有点太迟,以回答您的查询,但迟到比我想象的更晚。 我曾在一个应用程序之间有两个设备之间的蓝牙通信,我想总结一下我的经验。 当我们想要做一些我们需要的服务时,我们需要做一些不是很重的后台进程,我的意思是服务(如果它很大)会阻塞我的主UI线程,从而减慢你的操作系统或ANR,这可能是是我们不想要的。

蓝牙通信是一个永远在运行的过程,应该只使用一个线程来完成,因为这将作为一个单独的线程工作,并且不会对主UI线程产生任何影响。 如果我错了,请纠正我。