Android中的线程或服务中的蓝牙通信?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的线程或服务中的蓝牙通信?相关的知识,希望对你有一定的参考价值。

我正在开发涉及蓝牙通信的应用程序。即使设置连接的活动关闭,蓝牙通信也应该继续。首先,我已经考虑过使用Service,这似乎是正确的方法。但是,在蓝牙聊天示例中,通信发生在另一个线程中,而不是在服务中。我在我的应用程序中使用了该代码并且它正常工作。是否正确使用Thread进行蓝牙通信,或者我是否只需要使用服务?蓝牙通信应该是活动的,直到我的应用程序在RAM中,如果我在活动之间切换应该无关紧要。

答案

一个分离的线程与你的情况下的服务没有区别,除了它遵循android的活动生命周期,但是一个线程可能被杀死而且没有状态可以被恢复。一旦服务被杀,Android将尝试重新启动服务。

另一答案

回答你的问题有点太迟了,但迟到总比我想的要好。我已经开发了一个在两个设备之间进行蓝牙通信的应用程序,我想总结一下我的经验。我们通常使用的服务,当我们想要做一些不太重的后台进程时,在某种程度上,我的意思是服务(如果它是巨大的)将阻止我的主UI线程因此减慢你的操作系统或ANR可能是,这是我们不想要的。

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

以上是关于Android中的线程或服务中的蓝牙通信?的主要内容,如果未能解决你的问题,请参考以下文章

Android蓝牙串口通信模板

Android开发之蓝牙通信

Android / iOS 蓝牙低功耗 (BLE) 与多个服务通信

Android 实现蓝牙客户端与服务器端通信

可以通过 iOS 中的蓝牙 PAN 与系留设备进行通信

Android蓝牙开发——实现蓝牙聊天