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