Versuch, die Überwachung des RxAndroidBle-Verbindungsstatus mit einem Observable einzurichten. Der folgende Code kompiliert (ich kann es noch nicht testen), aber ich verstehe nicht ganz, warum. Der zweite Parameter des subscribe
Aufrufs soll Action1<java.lang.Throwable> onError
sein. Habe ich das richtig umgesetzt? Warum kann ich nichtThrowable onError-Komponente der Subskription, die nicht wie erwartet kompiliert wird
throwable -> throw throwable
Wenn ich versuche, die zweite „throwable“ ist markiert „nicht Symbol‚throwable‘lösen“, und zwischen dem „->“ und „werfen“ es sagt, dass es erwartet, entweder ein rechtes Zeichen, eine linke Klammer oder ein Semikolon.
// 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 Ich habe Probleme mit meinem Kopf um das Konzept eines Action1<Throwable>
Einwickeln; Kann mir bitte jemand erklären?
UPDATE: Ich denke, ich habe es herausgefunden. Wie so:
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;
}
(Ich habe auch die dritten optionalen Handler für die OnCompleted() -Aufruf.)
Hallo. Können Sie beschreiben, was genau Sie erreichen möchten? –