BluetoothGattCallback метод обратного вызова onCharacteristicChanged продолжает срабатывать, даже если я убью свое приложение

#android #android-bluetooth #bluetooth-gatt

#Android #android-bluetooth #bluetooth-gatt

Вопрос:

У меня есть приложение BLE для Android, и, как обычно, я использую BluetoothGattCallback его для периодического получения данных с устройства BLE. Однако, даже если я убью свое приложение, onCharacteristicChanged метод BluetoothGattCallback продолжает запускаться, и Android Studio показывает, что приложение все еще работает.

Я хочу, чтобы все процессы приложения были остановлены и onCharacteristicChanged не запускались после этого.

Ответ №1:

Если ваше приложение все еще работает, то по определению оно не будет уничтожено. Обычно вы никогда не уничтожаете процесс приложения, но позволяете системе делать это, когда у вас больше нет запущенных компонентов. Чтобы правильно отключить ваши соединения Bluetooth, когда вы закончите, вызовите close() имеющиеся у вас объекты BluetoothGatt. Когда вы «закончите», зависит от вас, но, например, в Activity onDestroy , если соединение «привязано» к Activity.

Комментарии:

1. Я заметил, что иногда gatt.close() работает не так, как ожидалось / на который вы ответили. Любой другой способ правильно закрыть соединение?

2. Вы уверены, что вы закрываете правильные объекты BluetoothGatt и что у вас нет никаких оборванных объектов? В противном случае это ошибка в вашем Android-устройстве.