我开发了一个前台服务,它应该处理特定硬件设备之间的蓝牙低功耗通信。
这项服务有一项活动,您可以在其中设置一些参数来管理服务,无论如何它也可以与被杀死的活动一起使用。
该服务也包含一个BootReceiver,并在设备启动时启动。
现在,我的目标是创建包含一个或多个活动的其他项目,其中一个必须与服务进行通信并激发数据。
我在网上找了一个aswer,结果就是这样:
看起来这个是正确的,但它很复杂,并且涉及大量代码以获取一些数据。
广播接收器很容易实现,但是如果我应该从每个100毫秒的蓝牙读取一些数据呢?我不认为这是正确的方法。
实施这样的沟通的正确方法是什么?
答案 0 :(得分:1)
在Android中,我们有几种方法可以在应用程序之间共享数据,这取决于 - 您希望在应用程序之间共享多少数据,网络问题,电池消耗和时序问题:
1)您可以在两个应用程序中使用aidl以共享数据,请注意您无法发送对象,您应该将数据转换为parcelable或byte-array。专业人士 - 短数据的绝佳解决方案。
2)SharedPreferences并在两个应用程序上使用相同的android:sharedUserId =“android.uid.share” - 不建议由于电池消耗和计时问题,很好地分享大数据。
3)您可以使用客户端/服务器模型并在机器人应用程序上打开一个unix套接字 - 专业 - 可靠且可以保护,缩短电池寿命。
4)广播接收器 - [不推荐]由于潜在的时间问题。
5)在SD卡上使用共享文件 - 不推荐。