C# 推送通知和MVVMCross

C# 推送通知和MVVMCross,c#,push-notification,xamarin.android,mvvmcross,C#,Push Notification,Xamarin.android,Mvvmcross,我们在使用MVVMCross在Android上处理通知时遇到问题 我实现了默认的void CreateNotification(),但是当我们点击通知中心中的通知时,onCreate()失败,出现以下异常: System.NullReferenceException:对象引用未设置为实例 物体的形状 我们正在使用的代码: var notificationManager = (NotificationManager)GetSystemService(NotificationService); /

我们在使用MVVMCross在Android上处理通知时遇到问题

我实现了默认的
void CreateNotification()
,但是当我们点击通知中心中的通知时,
onCreate()
失败,出现以下异常:

System.NullReferenceException:对象引用未设置为实例 物体的形状

我们正在使用的代码:

var notificationManager = (NotificationManager)GetSystemService(NotificationService);

//Create an intent to show ui
var uiIntent = new Intent(this, typeof(HomeView));

var notification = new Notification(Android.Resource.Drawable.StarOn, title);
notification.Flags = NotificationFlags.AutoCancel;

notification.SetLatestEventInfo(this, title, desc, PendingIntent.GetActivity(this, 0, uiIntent, PendingIntentFlags.UpdateCurrent));

notificationManager.Notify(1, notification);
此示例中的HomeView类型为:

公共抽象类MvxBindingActivityView: Cirries.MvvmCross.Droid.Views.MVX活动视图 其中TViewModel:class,cirries.MvvmCross.Interfaces.ViewModels.IMvxViewModel Cirries.MvvmCross.Binding.Droid.Views的成员

谁能帮我们解决这个问题

谢谢,
Christian

在没有任何跟踪或调用堆栈信息的情况下提供NullReference异常是在要求进行“长时间”猜测。。。如果可以,请尝试提供更多内容-例如捕获异常并跟踪调用堆栈和/或查看输出窗口或monitor.bat跟踪

话虽如此,我喜欢远射。。。我怀疑您的问题在于显示活动的方式—要显示MVX活动,您需要在您的意图附加中提供序列化的MVXViewModlerRequest—最简单的方法是在MvxNavigatingObject(vNext中的MvxApplicationObject)上使用ShowViewModel API。或者,您可以使用实现
https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Droid/Interfaces/IMvxAndroidViewModelRequestTranslator.cs
-您可以使用IoC获取此信息

我希望猜测是正确的-如果不是,那么请堆栈跟踪和日志输出:)


斯图尔特

你对我的问题猜对了。正如您所说,我们没有使用MvxViewModelRequest。当我们现在尝试这一点时,我们发现当应用程序已经运行时,这一点非常有效!仅当设备重新启动且应用程序未启动时,“CreateIntentFor”调用才会因nullreference错误而崩溃。你需要堆栈跟踪还是喜欢这个长镜头?>“你需要堆栈跟踪吗?”-听起来你应该做一些工作和调查。你为什么不看看它,试着调试一下呢?