我在我的MvvmCross应用程序中使用Messenger插件,并注意到它有时会清除我的订阅("一个或多个侦听器失败 - 清除计划").这导致我的应用程序出错.默认情况下,我使用订阅的弱引用,我不是取消订阅消息.
我需要取消订阅吗?允许它被垃圾收集不是弱引用的要点吗?
我的BaseView在构造函数中订阅,如下所示.
public BaseView()
{
_messenger = Mvx.Resolve<IMvxMessenger>();
_messenger.Subscribe<MyMessage>(s => Method());
}
Run Code Online (Sandbox Code Playgroud)
下面是我的广播接收器发布我的消息.
var _messenger = Mvx.Resolve<IMvxMessenger>();
_messenger.Publish<MyMessage>(new MyMessage(this));
Run Code Online (Sandbox Code Playgroud)
我有一个想法,试图在onDestroy中取消订阅.
如果你能给我一些关于为什么会发生这种情况以及可能的解决方案的见解,我将不胜感激.
提前致谢.
mvvmcross ×1