Closed ozw-sei closed 3 years ago
コメントありがとうございます。
言われるとおり、 Subscribe で得られた Disposable の Dispose を呼ばないと、メモリリークする場合が多いですね、特に Xamarin だからといって特別な何かはありません。
この例だと購読する Observable はその場で作ってるので問題ないですが、 Activity より生存期間の長いオブジェクトを購読して、Dispose を忘れると Activity が解放されなくなってしまいますね。
またこの記事自体は、Rx の導入に関しては数年前の古い情報なので、割と最近書いた投稿も参考になるかと思います。 → 2017年冬から始める ReactiveProperty + Xamarin.Forms http://blog.amay077.net/blog/2017/11/22/getting_started_reactiveproperty_with_xamarin_forms_in_winter_2017/
データバインディングを使うと、購読の開始と破棄はデータバインディングの機構側に任せられるので、dispose 忘れを心配する必要はなくなりますね。
該当箇所のSubscribeのDisposeをしないとメモリリークすると思うのですが、Xamarin Android/ iOS ではその辺の管理を吸収してくれるのでしょうか。
https://github.com/amay077/XamarinAndroid_RxSample/blob/ada92c492de610019a87a04afff8224d71ef9322/XamarinAndroidRxSample/MainActivity.cs#L35