sam*_*ric 3 android mvvmcross xamarin
使用Xamarin和MvvmCross,我在Android客户端视图中订阅了来自Core项目的消息,我尝试了这个不执行的代码:
public HomeView(IMvxMessenger messenger)
{
_messenger = messenger;
// Subscribe to inter-app message "ApplicationError_Message"
_messageToken = messenger.SubscribeOnMainThread<ApplicationError_Message>(Display_Error);
}
Run Code Online (Sandbox Code Playgroud)
我真的不能按照你的示例代码 - 它没有真正解释:
作为一个快速测试,我在InternetMinute示例中修改了Android HomeView - https://github.com/slodge/MvvmCross-Tutorials/tree/master/InternetMinute
using Android.App;
using Android.OS;
using Cirrious.CrossCore;
using Cirrious.MvvmCross.Droid.Views;
using Cirrious.MvvmCross.Plugins.Messenger;
using InternetMinute.Core;
namespace InternetMinute.Droid.Views
{
[Activity(Label = "Internet time is ticking")]
public class HomeView : MvxActivity
{
private MvxSubscriptionToken _token;
private IMvxMessenger _messenger;
protected IMvxMessenger Messenger
{
get
{
_messenger = _messenger ?? Mvx.Resolve<IMvxMessenger>();
return _messenger;
}
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.HomeView);
}
protected override void OnResume()
{
base.OnResume();
_token = Messenger.SubscribeOnMainThread<TickMessage>(OnTick);
}
protected override void OnPause()
{
Messenger.Unsubscribe<TickMessage>(_token);
_token = null;
base.OnPause();
}
private int _i = 0;
private void OnTick(TickMessage obj)
{
Mvx.Trace("Tick received {0}", ++_i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常 - 我得到了我期待的痕迹.
也许您的SubscribeOnMainThread没有订阅正确的消息类型 - 编译器推断出什么类型?
| 归档时间: |
|
| 查看次数: |
2013 次 |
| 最近记录: |