Android--设计一个快速获取数据的后台服务

标签 android architecture software-design

我正在为我们的自定义医疗保健硬件设备开发一个 Android 应用程序,除其他外,它应该从 5 个传感器接收数据。传感器数据通过蓝牙发送,并使用分别以 64Hz、1000Hz、4Hz、4Hz 和 32Hz 发射的代表接收。我已经成功创建了一个接收传感器数据的应用程序。不幸的是,目前,传感器采集在主 UI 线程上运行。这是 Not Acceptable ,因为应用程序应该全天不间断地记录数据。在花了一些时间探索我的选择之后,许多在线教程建议使用服务来实现这一点。然而,有许多类型的服务(IntentServices、前台服务、后台服务……)可供选择,我不确定什么是最好的方法。此外,我的应用程序将针对 android O,并且似乎使用 background services are somehow discouraged .任何有经验的 android 开发人员都会就如何解决这个问题提出一些建议吗?请注意,目前这只是一个演示,电池和其他资源的使用不是问题。

最佳答案

您想要实现的事情的最佳方法是使用前台服务,它将与 ble 设备保持连接并从 gatt 服务获取通知。此外,您还需要使用 WakeLock 让您的服务在 sleep 模式下保持 Activity 状态。

一年前制作sample用于内部 ble 设备的应用程序。检查bluetooth/gatt包,这样的实现真的很有用。(项目不适合生产,但作为示例/演示非常好)

关于Android--设计一个快速获取数据的后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51573275/

相关文章:

Android如何检查 Intent 服务是否仍在运行或已停止运行

Android:如果在任务运行时调用 AsyncTask execute() 会发生什么情况?

wpf - MVVM 模式是否被破坏?

c# - 如何减少来自 .NET Windows 应用程序的数据库 (SQL Server) 调用

c# - 在签名相关但不相同的接口(interface)之间进行转换是否是一种反模式?

keyboard - 哪些键盘按键在国际上可用且易于访问?

java - 调用了错误的 onDrag 类

android - Android下载大文件时如何处理中断?

c# - 在 DDD 中拥有独立的领域模型和持久性模型

Python断言语句和代码可重用性