来自其他项目的服务与活动之间的Android通信

时间:2017-09-12 08:43:03

标签: android service bluetooth

我开发了一个前台服务,它应该处理特定硬件设备之间的蓝牙低功耗通信

这项服务有一项活动,您可以在其中设置一些参数来管理服务,无论如何它也可以与被杀死的活动一起使用。

该服务也包含一个BootReceiver,并在设备启动时启动。

现在,我的目标是创建包含一个或多个活动的其他项目,其中一个必须与服务进行通信并激发数据

我在网上找了一个aswer,结果就是这样:

  • 绑定和界面

看起来这个是正确的,但它很复杂,并且涉及大量代码以获取一些数据。

  • 广播接收器

广播接收器很容易实现,但是如果我应该从每个100毫秒的蓝牙读取一些数据呢?我不认为这是正确的方法。

实施这样的沟通的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

在Android中,我们有几种方法可以在应用程序之间共享数据,这取决于 - 您希望在应用程序之间共享多少数据,网络问题,电池消耗和时序问题:

1)您可以在两个应用程序中使用aidl以共享数据,请注意您无法发送对象,您应该将数据转换为parcelable或byte-array。专业人士 - 短数据的绝佳解决方案。

2)SharedPreferences并在两个应用程序上使用相同的android:sharedUserId =“android.uid.share” - 不建议由于电池消耗和计时问题,很好地分享大数据。

3)您可以使用客户端/服务器模型并在机器人应用程序上打开一个unix套接字 - 专业 - 可靠且可以保护,缩短电池寿命。

4)广播接收器 - [不推荐]由于潜在的时间问题。

5)在SD卡上使用共享文件 - 不推荐。