2017-02-14 36 views
1

是否需要配置MvxSubscription令牌,即使在Android On Destroy方法中配置View模型也是如此。我有一個主頁視圖這是一個活動有兩個片段家庭碎片和地圖碎片關聯相同視圖模型Homeviewmodel因此,當我導航到Map碎片從HomeView並回歸到主頁視圖時,Viewmodel被破壞並且令牌也破壞令牌代碼是否需要配置MvxSubscription令牌,即使在Android OnDestroy方法中配置Viewmodel

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

} 

但同樣的消息沒有得到認購

回答

1

簡短的回答,第

正如你可以看到下面或在mvvmcross網站 - 你需要抓住一個參考,但你不知道需要調用處置。 GC在超出範圍時將處理該對象 - 例如,在您的示例中放置ViewModel時。

訂閱可以在使用關於IMvxMessenger取消訂閱 方法的任何時間或通過在 訂閱令牌調用Dispose()被取消。

但是,在許多情況下,取消訂閱/處置決不會被調用。相反, 聽衆依賴於WeakReference實現的 MvxSubscriptionToken來清除訂閱,當對象出現 範圍併發生垃圾收集時。

每當訂閱 令牌從訂閱返回會發生這種基於GC-退訂是垃圾回收 - 所以如果令牌 不存儲,則A