У нас есть сценарий, в котором мы выключаем устройство BLE Enabled, а затем экран Android App должен быть серым. Но когда выключить устройство BLE Enabled, вместо Greying, экран остается зависающим, и пользовательский интерфейс не отвечаетДанные, полученные от Observer, не активируют подписчика в Rx Java
Ни один из методов, таких как onNext(), onCompleted() и onError() в подписчике не вызван после выполнения Наблюдаемого.
ниже код подписчика:
private void subscribeToConnEvents() {
Subscriber<ConnService.ConnEvent> subscriber = new Subscriber<ConnService.ConnEvent>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(ConnService.ConnEvent connEvent) {
}
};
SerializedSubscriber<ConnService.ConnEvent> serializedSubscriber = new SerializedSubscriber<>(subscriber);
}
Ниже Наблюдаемый код, из которого абонент будет называться:
В Ниже Кодекса connectionStateSubject получает инициализируется в конструкторе
private SerializedSubject<ConnEvent, ConnEvent> connectionStateSubject;
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
BluetoothDevice device = gatt.getDevice();
String address = gatt.getDevice().getAddress();
ConnectionEvent event = new ConnectionEvent();
event.deviceAddress = address;
if (newState == BluetoothProfile.STATE_DISCONNECTED) {
event.status = ConnectionStatus.STATE_DISCONNECTED;
connectionStateSubject.onNext(event);
}
}