Android 取消订阅NavigationView检索到的邮件
我正在开发Xamarin Android应用程序。我被如何取消订阅NavigationView检索到的消息所困扰。 我试过:Android 取消订阅NavigationView检索到的邮件,android,xamarin,mvvmcross,Android,Xamarin,Mvvmcross,我正在开发Xamarin Android应用程序。我被如何取消订阅NavigationView检索到的消息所困扰。 我试过: public override void OnDestroyView () { messenger.Unsubscribe<UserLoginMessage> (_token); base.OnDestroyView (); } 公共覆盖无效OnDestroyView() { 取消订阅(_令牌); base.OnDestroyView();
public override void OnDestroyView ()
{
messenger.Unsubscribe<UserLoginMessage> (_token);
base.OnDestroyView ();
}
公共覆盖无效OnDestroyView()
{
取消订阅(_令牌);
base.OnDestroyView();
}
以下是我在navigationview中订阅邮件的方式:
public class MenuFragment : MvxFragment<MenuViewModel>, NavigationView.IOnNavigationItemSelectedListener
{
private NavigationView navigationView;
public TextView LoginUserName;
public ImageView ProfilePicture;
public IMvxMessenger messenger;
public MvxSubscriptionToken _token;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignore = base.OnCreateView(inflater, container, savedInstanceState);
var view = this.BindingInflate(Resource.Layout.fragment_navigation, null);
navigationView = view.FindViewById<NavigationView>(Resource.Id.navigation_view);
navigationView.SetNavigationItemSelectedListener(this);
navigationView.Menu.FindItem (Resource.Id.nav_home).SetChecked (true);
navigationView.Menu.FindItem (Resource.Id.nav_LogOut).SetVisible (false);
messenger = Mvx.Resolve<IMvxMessenger>();
_token = messenger.SubscribeOnMainThread<UserLoginMessage>(Login_Info,MvxReference.Strong);
return view;
}
public类菜单片段:MvxFragment,NavigationView.IOnNavigationItemSelectedListener
{
私有导航视图导航视图;
公共文本视图登录名;
公众影像浏览简介图片;
公共信使;
公共MvxSubscriptionToken(公共MvxSubscriptionToken);
创建视图上的公共覆盖视图(布局、充气机、视图组容器、捆绑包保存状态)
{
var ignore=base.OnCreateView(充气机、容器、savedInstanceState);
var view=this.BindingInflate(Resource.Layout.fragment\u导航,null);
navigationView=view.findviewbyd(Resource.Id.navigation\u视图);
navigationView.SetNavigationItemSelectedListener(此);
navigationView.Menu.FindItem(Resource.Id.nav_home).SetChecked(true);
navigationView.Menu.FindItem(Resource.Id.nav_LogOut).SetVisible(false);
messenger=Mvx.Resolve();
_token=messenger.SubscribeOnMainThread(登录信息,MvxReference.Strong);
返回视图;
}
但这不是退订信息,我收到两次信息。解决方案是什么?请帮助!您是否使用MessagingCenter进行订阅?如果是,您的订阅代码是什么样子的?我使用的是IMVxMessenger您是否尝试过
\u token.Dispose()
?如果不是,那么可能会显示更多的代码…您确定只订阅一次吗?我尝试过\u token.Dispose()).但它不起作用。@Stuart