Закрытие подписки disposable в Rxjava в Android
Недавно на код ревью услышал от сеньора, что типа подписку Rxjava закрывать необязательно во вью модели, так как модель умрёт и подписка вместе с ней, а до тех пор она все равно ещё нужна или там один единственный ивент. Т.е. он утверждает, что можно dispose не делать, и что он вообще в студии вырубил ворнинги, с этим саязанные. Честно говоря, меня это немного покоробило, но он старший на проекте, а я новичок, и я не стал много спорить на эту тему. Так ли это?
Ответы (1 шт):
Если viewmodel подписан на какой нибудь долго живущий объект, он не будет уничтожен сборщиком мусора пока не отменить подписку. Поэтому надо отписаться в методе onCleared().
Можете прочитать про эту тему в этой статье в параграфе Leaking ViewModels