2017-02-14 14 views
1

Нужно ли утилизировать токен MvxSubscription, даже если вы удаляете модель View в Android On Destroy. У меня есть Home View, который представляет собой Activity, есть два фрагмента Home frag и Map frag, связанные с одной и той же моделью Viewview Homeviewmodel. Поэтому, когда я перехожу к Map frag из HomeView и возвращается к homeview, Viewmodel уничтожается и токен также код для уничтожения токенаНе требуется ли использовать токен MvxSubscription, даже если вы удаляете Viewmodel в методе Android OnDestroy

public override void DisposeImpl() 
{   
    _imageClickedToken.Dispose();    
    _commentPostToken.Dispose();   
    _filterArticleToken.Dispose();    
    base.DisposeImpl(); 

} 

но опять же сообщения не получают подписались

ответ

1

короткого ответа, №

Как вы можете видеть ниже, или на mvvmcross сайте - вы должны держать на ссылку, но вы не знаете нужно вызвать dispose. GC будет утилизировать объект, когда он выходит за рамки - например, когда ViewModel расположен в вашем примере.

подписки можно отменить в любое время, используя метод Отказаться на IMvxMessenger или позвонив по телефону Dispose() на подписки лексемы.

Однако во многих случаях Unsubscribe/Dispose никогда не вызывается. Вместо этого слушатели полагаются на реализацию WeakReference для MvxSubscriptionToken, чтобы очистить подписку при выходе объектов. области и сборка мусора.

Этот GC основе отписки будет происходить всякий раз, когда маркер подписки вернулся из Subscribe сборки мусора - так что если лексемы не сохраняется, то А