問題タブ [rxandroidble]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - RxJava で複数の .subscribe() ステートメントを使用する
BLE 周辺機器用の私の Android アプリは、2 つの異なるデバイス特性に書き込み、他の 2 つのデバイスから通知を受け取ります。ライブラリの開発者はRxAndroidBle
、同じインスタンスでの複数のサブスクリプションに対して警告していますが、特に通知の 1 つがかなり一定のデータ「ファイアホース」であるため、RxBleConnection
これらすべての I/O 操作を単一の に結合する現実的な方法は見当たりません。.subscribe()
よくわからないので、単純に をRxBleConnection
変数に格納し、それを複数.subscribe()
の で使用しています。私が知る限り、これは正常に機能しています。私はRxAndroidBle
ライブラリを調査しましConnectionSharingAdapter
たが、コードを分析しましたが、私の単純なアプローチに対してどのような利点があるのか わかりません(知りたいのですが)。
.subscribe()
一般に、複数の s がどのように状態を導入するか、および潜在的な落とし穴について詳しく説明すると役立ちます。質問:
RxBleConnection
変数に格納して複数の s に使用することの何が問題になってい.subscribe()
ますか?- これが問題である場合、どのように
ConnectionSharingAdapter
解決しますか? - 複数のサブスクリプションが「状態を導入する」とはどういう意味ですか? また、これがどのように問題を引き起こす可能性がありますか?
- 4 つの特徴的な I/O 操作をすべて 1 つにまとめる
.subscribe()
(パフォーマンスを低下させない) クリーンな方法はありますか?
android - RxAndroidBle からのエラー メッセージ
破棄されているときに次のエラー メッセージが表示される Android サービスがあります。
サービス io.aeroscope.aeroscope.AeroscopeBluetoothService は、もともとここに登録されていた IntentReceiver com.polidea.rxandroidble.RxBleAdapterStateObservable$1$1@3d91b742 をリークしました。unregisterReceiver() への呼び出しがありませんか? android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:944) で
サービス内の唯一のサブスクリプションは、onDestroy()
メソッドでサブスクライブ解除されます (全体が表示されます)。
このメッセージはどこから来て、どうすれば修正できますか? (また、テストは.isUnsubscribed()
必要ですか?super.onDestroy()
最初に来る必要がありますか?)