2013-04-18 92 views
0

我們正面臨着使用MVVMCross處理Android通知的問題。推送通知和MVVMCross

我實現的默認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的類,Cirrious.MvvmCross.Interfaces.ViewModels.IMvxViewModel 會員.MvvmCross.Binding.Droid.Views

任何人都可以幫助我們在哪裏解決這個問題?

感謝, 基督教

回答

1

提供NullReference例外無任何痕跡或調用堆棧信息是要求「長鏡頭」的猜測......請儘量提供更多的東西,如果你能 - 例如,通過捕捉異常和跟蹤CallStack和/或通過查看輸出窗口或monitor.bat跟蹤。

就這樣說,我喜歡長鏡頭......並且我懷疑你的問題在於你展示活動的方式 - 爲了顯示你需要在你的Intent Extras中提供一個序列化的MvxVieWModleRequest的mvxactivity - 最簡單的方法這是否使用MvxNavigatingObject(vNext中的MvxApplicationObject)上的ShowViewModel API。另外,您可以使用實現https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Droid/Interfaces/IMvxAndroidViewModelRequestTranslator.cs對象 - 你可以得到這個使用IoC的

我希望的猜測是正確的 - 如果沒有,那麼堆棧跟蹤和日誌輸出請:)

斯圖爾特

+0

你花了正確地猜測我的問題。正如你所說,我們沒有使用MvxViewModelRequest。儘管現在正在嘗試此操作,但我們發現,當應用程序已經運行時,這個功能完美無缺!只有在設備重新啓動且應用程序未啓動時,調用'CreateIntentFor <>'會因null參考錯誤而崩潰。你需要這個堆棧跟蹤還是你喜歡這個長鏡頭? – cengelen

+0

>'你需要堆棧跟蹤嗎?' - 聽起來像*你*應該做一些工作和一些調查。你爲什麼不看看它並嘗試調試它? – Stuart