Observable で RxAndroidBle 接続ステータスの監視を設定しようとしています。以下のコードはコンパイルできます (まだテストできません) が、その理由は完全にはわかりません。呼び出しの 2 番目のパラメーターは でsubscribe
あるはずAction1<java.lang.Throwable> onError
です。これを正しく実装しましたか?なぜ私はちょうど書くことができない
throwable -> throw throwable
私が試してみると、2番目の「throwable」には「シンボル「throwable」を解決できません」というフラグが付けられ、「->」と「throw」の間で、右括弧、左中括弧、またはセミコロンのいずれかが必要であると表示されます。
// 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 Action1<Throwable>
;の概念を理解するのに苦労しています。誰か説明してくれませんか?
更新:私はそれを理解したかもしれないと思います。そのようです:
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;
}
(onCompleted() 呼び出し用に 3 番目のオプション ハンドラーも追加しました。)