Essayer de configurer la surveillance de l'état de la connexion RxAndroidBle avec un observable. Le code ci-dessous compile (je ne peux pas encore le tester), mais je ne comprends pas vraiment pourquoi. Le deuxième paramètre de l'appel subscribe
est supposé être Action1<java.lang.Throwable> onError
. Ai-je mis en œuvre correctement? Pourquoi ne puis-je simplement écrireLe composant jetable onError de l'abonnement ne se compile pas comme prévu
throwable -> throw throwable
Lorsque je tente, la deuxième « throwable » est signalé « ne peut pas résoudre le symbole« throwable », et entre le « -> » et « jette » qu'il dit qu'il attend soit une parenthèse droite, une orthèse gauche ou un point-virgule.
// set up monitoring of connection state with a subscription
boolean setConnectionStateNotification() {
asBleDevice.observeConnectionStateChanges()
.subscribe(
connectionState -> asBleConnectionState = connectionState,
throwable -> new RuntimeException("Problem with subscription to Connection State Changes: "
+ throwable.getMessage())
);
return true;
}
TBH Je vais avoir du mal à envelopper mon esprit autour du concept d'un Action1<Throwable>
; quelqu'un peut-il l'expliquer, s'il vous plaît?
MISE À JOUR: Je pense que je l'ai peut-être compris. Comme si:
boolean setConnectionStateNotification() {
asBleDevice.observeConnectionStateChanges() // returns Observable<RxBleConnection.RxBleConnectionState>
.subscribe(
connectionState -> asBleConnectionState = connectionState,
throwable -> { throw new RuntimeException(
"Problem with subscription to Connection State Changes: "
+ throwable.getMessage(), throwable);
},
() -> RxBleLog.d("Connection State Observable has completed", null) // onCompleted() with no arguments
); // subscribe
return true;
}
(J'ai aussi ajouté le troisième gestionnaire en option, pour l'appel OnCompleted().)
Bonjour. Pourriez-vous décrire exactement ce que vous voulez accomplir? –