У меня есть устройство для измерения пульса, подключенное к моему приложению, и я обеспокоен потерей частоты сердечных сокращений в различных сценариях.
Когда приложение находится на переднем плане, я передаю информацию о частоте сердечных сокращений и сохраняю их в сторонней базе данных. Это легкая часть.
Все усложняется, когда приложение переходит в фоновый режим, пока пользователь тренируется и т. д., а частота сердечных сокращений все еще передается. Файловая система становится зашифрованной, поэтому я не могу писать в базу данных, поэтому моя идея состоит в том, чтобы добавить данные о частоте сердечных сокращений в текстовый файл, а затем загрузить их в базу данных, когда приложение вернется на передний план.
Это все еще усложняется, потому что частота сердечных сокращений составляет один раз в секунду, поэтому могут быть десятки тысяч, прежде чем приложение вернется. Я думаю, вместо того, чтобы добавлять их в текстовый файл, просто создавать имена файлов, которые указывают номер частоты сердечных сокращений, и получать данные из имен файлов и даты создания. Таким образом, мне никогда не придется открывать файл. Мне просто нужно прочитать его метаданные и удалить файл при чтении в базу данных.
Такая, казалось бы, простая задача становится еще сложнее. Я должен иметь дело с Core Bluetooth и следить за тем, чтобы он поддерживал соединение открытым, но я не могу представить, что iOS позволит приложению бесконечно прослушивать датчик сердечного ритма. В какой-то момент приложение завершит работу, но что произойдет с потоком пульса?
Есть ли проверенный способ обработки потоковой передачи пульса в фоновом режиме на неопределенный срок? Любой совет или опыт будет принят с благодарностью!