我正在编写一个连接蓝牙设备的应用程序,不断从其接收数据,并存储在本地数据库中。收到的某些数据需要弹出系统警报。有一个主要活动,它只显示连接和接收数据的状态。到目前为止一切正常,包括弹出窗口。
由于应用程序需要在后台运行,我已经实现了管理BT连接的“蓝牙连接”服务,并显示持续通知以避免被杀。出于编码清晰度的原因,我希望单独的后台服务来收集所有数据,并记录它(而不是让BT服务完成所有工作)。我也更喜欢我的应用程序组件之间的松耦合,所以我使用GreenRobot的事件总线用于所有IPC。因此,我的BT连接服务完全没有意识到任何数据收集/记录代码 - 它只是向事件总线发送消息,我想保持这种方式。
现在,我希望将我的数据收集/日志记录代码作为另一个后台服务运行。有没有办法确保它运行只要BT连接服务正在运行?并且没有显示另一个持续通知或两个服务之间的代码紧密耦合?
答案 0 :(得分:0)
你可以让你的班级延长service
,所以在这种情况下你不必为它做出通知。基本上它在后台运行而不需要在状态栏上显示通知。确保在将应用程序退出stopservice()
之前,它将继续运行,直到设备重新启动或以某种方式用户强制停止应用程序管理器内的应用程序。