当应用程序处于后台时,从蓝牙设备存储(或发送)数据

时间:2019-03-01 13:14:42

标签: android bluetooth foreground-service backgrounding

我正在开发一个Android应用,该应用可以从蓝牙设备读取数据并将其保存到磁盘(并可能将一些数据发送到服务器)。蓝牙设备可穿戴,带有心率传感器和许多其他传感器。它每秒大约将数据发送到Android应用。

该应用程序在前台运行时工作正常,但在后台运行时,几分钟(通常为15至30分钟)后便被杀死。

我了解前台和后台服务的概念,似乎我需要的是前台服务(如果我输入错了,请更正我),以确保该进程不会被杀死。但是,这很痛苦,因为我必须将我的大多数应用程序类移到前台服务类的远程对象中。

但是!我注意到,仅创建一个简单的前台服务并将其主要活动绑定到该活动即可,这样就不会很快终止该活动,事实上,我测试了一个半小时之后,一切仍然运行顺利在主要活动过程中。

那仅仅是我正在寻找的解决方案吗?还是真的必须将大多数类移至更复杂的前台服务中的远程对象中?

1 个答案:

答案 0 :(得分:0)

使用ForeGround服务实现它很好。

下一步,您需要创建一个BroadCastReceiver,它将调用您的前台服务,并从MainActivity的OnDestroy()方法中调用BroadcastReceiver。