2017-02-14 10 views
1

MvxSubscriptionトークンを廃棄する必要がありますか?Android On DestroyメソッドでViewモデルを削除しても必要です。私はホームビューを持っていますアクティビティは2つのフラグメントHome fragとMap fragが同じViewモデルに関連付けられていますHomeviewmodelしたがって、ホームビューからMap fragに移動し、ホームビューに復帰するとViewmodelが破棄されトークンを破棄するコードAndroid OnDestroyメソッドでViewmodelを廃棄する場合でも、MvxSubscriptionトークンを廃棄する必要がありますか

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

} 

しかし、あなたは以下を参照してくださいまたはmvvmcrossサイトでわかるように、再びメッセージは、

答えて

1

短い答えを購読号

されません - あなたが参照に保持する必要がありますが、そうでありません処理を呼び出す必要があります。 GCは、ViewModelがあなたのサンプルに配置されている場合など、スコープから外れたときにオブジェクトを破棄します。

サブスクリプションはIMvxMessenger上または サブスクリプション・トークン上のDispose()を呼び出すことで解除 方法を使用して、いつでもキャンセルすることができます。

ただし、多くの場合、Unsubscribe/Disposeは呼び出されません。代わりに リスナーは、 MvxSubscriptionTokenのWeakReference実装を使用して、オブジェクトが外に出てサブスクリプションをクリアし、範囲の が発生し、ガベージコレクションが発生します。そうトークン 場合

次いで、格納されていない -

加入トークンが購読から返されるたびに、このGCベースの脱退が起こるは、ガベージコレクションであります

関連する問題