0

我们在使用 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 : Cirrious.MvvmCross.Droid.Views.MvxActivityView 其中 TViewModel : 类 Cirrious.MvvmCross.Interfaces.ViewModels.IMvxViewModel Cirrious.MvvmCross.Binding.Droid.Views 的成员

任何人都可以帮助我们在哪里解决这个问题?

谢谢,克里斯蒂安

4

1 回答 1

1

提供没有任何跟踪或调用堆栈信息的 NullReference 异常是在要求“远射”猜测...如果可以,请尝试提供更多信息 - 例如通过捕获异常并跟踪 CallStack 和/或查看输出窗口或 monitor.bat 跟踪。

话虽如此,我喜欢远射......我怀疑你的问题在于你展示活动的方式 - 要显示 mvxactivity,你需要在 Intent Extras 中提供序列化的 MvxVieWModleRequest - 最简单的方法是使用MvxNavigatingObject 上的 ShowViewModel API(vNext 中的 MvxApplicationObject)。或者,您可以使用实现的对象https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Droid/Interfaces/IMvxAndroidViewModelRequestTranslator.cs- 您可以使用 IoC 获得它

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

斯图尔特

于 2013-04-18T11:57:43.230 回答