我正在开发一个Android应用程序,该应用程序通过蓝牙连接的外部设备将字节数据记录到手机存储中的文件中。我需要应用程序连续运行几天而不停止。
我已经测试了几个小时,当屏幕打开时,录音效果很好。但当屏幕锁定超过几分钟时,在一些设备(如红米手机)中,当我再次打开应用程序时,它会在停止应用程序后重新启动。当应用程序最小化几分钟时,就会发生这种情况。
我在互联网上搜索过,发现当安卓系统在onPause上运行一段时间以节省内存时,应用程序会被它杀死。
我不确定这背后是否有原因,但如果还有其他原因,请告诉我。
Android工作如下,
-
在外部设备和android应用程序之间建立蓝牙连接。
-
我正在使用NRF BLE_app_uart库来完成任务。
-
通过蓝牙接收从外部设备到手机的字节数据。
-
这些数据字节被添加到静态arraylist,并使用外部可运行线程从arraylist读取值,并使用Outputwriter方法将值写入/附加到外部文件。
-
数据字节同时从外部线程绘制在图形中。
-
测试的设备是Redmi Y2(Android O,8.1.0)。
问题是,当设备被锁定超过几分钟时,它会被破坏并重新启动。
我怀疑原因是内存问题还是安卓系统问题。
事实上,这个应用程序预计会运行几天,我想知道各种健身应用程序是如何运行的。
我认为您需要使用前台服务。android文档在这里:https://developer.android.com/guide/components/foreground-services
查看本文了解更多信息infohttps://proandroiddev.com/background-ble-scan-in-doze-mode-on-android-devices-3c2ce1764570