私はRx Javaサブスクリプションとオブザーバブルを頻繁に使用するプロジェクトに取り組んでいます。私は彼らを処分するのがベストプラクティスであると思っていました。現在のところ、doOnUnsubscribe()
関数のサブスクリプション/オブザーバブルだけを無効にしているだけでなく、takeUntil()
をPublishSubject
に設定してオブザーバブルの接続を解除するだけです。これは、これらの参照をクリーンアップする適切な方法ですか、それとも良い方法がありますか?ありがとう!メモリリークを防ぐためにRx SubscriptionとObservableをクリーンアップするにはどうすればいいですか?
1
A
答えて
3
サブスクリプションがonCompleted()
またはonError()
で自然に終了すると、サブスクリプションがクリーンアップされます。あなたが使用している場合:
Subscription sub = observable.subscribe(value -> doSomeStuff());
その後、sub.unsubscribe()
を呼び出してリソースを解放します。
CompositeSubscription
を使用して未処理のサブスクリプションをすべて保持することもできます。コンポジットでclear()
を実行すると、すべての含まれているサブスクリプションはサブスクライブ解除され、削除されます。あなたがコンポジットからunsubscribe()
を受け取ると、含まれているすべてのサブスクリプションはサブスクライブされず、複合サブスクリプション自体はサブスクライブされなくなります。
リソースを無効にすると、特に複数のサブスクリプションがある場合は、必要な処理や必要な処理が行われないことがあります。
関連する問題
- 1. これらのメモリリークを防ぐにはどうすればよいですか?
- 2. ConcurrentModificationExceptionを防ぐにはどうすればいいですか?
- 3. タイムアウトを防ぐにはどうすればいいですか
- 4. CompileAssemblyFromSourceのメモリリークを防止するにはどうすればよいですか?
- 5. java.net.SocketTimeoutExceptionを防ぐためにランタイムタイムアウトを追加するにはどうすればよいですか?
- 6. ループを完了するためにエラーを防ぐにはどうすればよいですか?
- 7. JavaFXテストプロジェクトで重複を防ぐにはどうすればいいですか
- 8. TextViewでスワイプを防ぐにはどうすればいいですか
- 9. 504エラーを防ぐためにページのタイムアウトを増やすにはどうすればよいですか?
- 10. デバイスドライバのインストールを防ぐにはどうすればいいですか?
- 11. 複数のウィンドウを防ぐにはどうすればいいですか?
- 12. Safari Mobile(iPad)のスクロールラグを防ぐにはどうすればいいですか?
- 13. ラベルコントロール内のボタンクリックを防ぐにはどうすればいいですか?
- 14. 私のウェブページのprintscreenを防ぐにはどうすればいいですか?
- 15. AppleScriptの自動ダイアログボックスを防ぐにはどうすればいいですか?
- 16. .NETベースクラスの使用を防ぐにはどうすればいいですか?
- 17. Flowtypeの統一タイプを防ぐにはどうすればいいですか?
- 18. href redirect onclickを防ぐにはどうすればいいですか?
- 19. MSILランタイム注入を防ぐにはどうすればいいですか?
- 20. プルリクエストでのコミットを防ぐにはどうすればよいですか?
- 21. Rx Observableトランザクション内でRealmコールを使用する際に、Realm Threadingの問題を防止するにはどうすればよいですか?
- 22. 不正なアップロードを防ぐにはどうすればよいですか?
- 23. HTMLテキストの孤立を防ぐにはどうすればよいですか?
- 24. モバイルビジターの訪問を防ぐにはどうすればよいですか?
- 25. ItemCountの重複を防ぐにはどうすればよいですか?
- 26. SPAMユーザーのサインアップを防ぐにはどうすればよいですか?
- 27. Androidでカーソルを閉じるとメモリリークを防止するにはどうすればよいですか?
- 28. 追加されたイベントハンドルによるメモリリークを防ぐための予防策
- 29. Golangのメモリリークを防ぐためにhttp.Responseに空白の識別子を使用すれば十分ですか?
- 30. socket.ioのためにフォームの送信を防ぐために、フォームデータをデータベースに保存するにはどうすればいいですか?
オブザーバブルについてはどうですか? –
'Subject 'が別の観測対象に登録されている場合、そのサブジェクトを購読解除することができます。そうでなければ、オブザーバブルは、それがサブスクライブされるまでパッシブオブジェクトです。サブスクリプションなしでは、コールドオブザーバブルは何もしません。熱心な観察者は、あらゆる加入者を見つけようとし、それらにデータを送信するが、それ以外の場合、リソースを消費することはない。 –