#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-устройстве.