Я разрабатываю приложение для Android, включающее запись данных в байтах в файл в памяти телефона с внешнего устройства, подключенного через Bluetooth. Мне нужно, чтобы приложение непрерывно работало в течение нескольких дней без остановки.
Я проверил несколько часов, и запись работает нормально, когда экран включен. Но когда экран заблокирован более чем на несколько минут, на некоторых устройствах, таких как телефоны redmi, когда я снова открываю приложение, оно перезапускается снова после остановки моего приложения. Этот случай происходит, когда приложение свернуто на несколько минут.
Я искал в интернете и узнал, что приложения отключаются системой Android, когда она работает на onPause на некоторое время, чтобы сэкономить память.
Я не уверен, является ли это причиной этого, но если есть какая-либо другая причина, пожалуйста, дайте мне знать.
Android работает следующим образом,
Установить соединение Bluetooth между внешним устройством и приложением для Android.
Я использую библиотеку NRF BLE_app_uart, чтобы добиться цели.
Получение данных в байтах с внешнего устройства на телефон через Bluetooth.
Эти байты данных добавляются в статический массив и, используя внешний исполняемый поток, читают значения из массива и записывают / добавляют во внешний файл с помощью метода Outputwriter.
Байт данных одновременно выводится на график из внешнего потока.
Протестированным устройством является Redmi Y2 (Android O, 8.1.0).
Проблема в том, что, когда устройство заблокировано на несколько минут, оно разрушается и перезапускается снова.
Мое сомнение по поводу причины - проблема с памятью или из-за проблем с системой Android.
На самом деле приложение должно работать в течение нескольких дней, и мне интересно, как различные фитнес-приложения работают в течение нескольких дней.