当Activity从IntentFilter启动时,ViewModel为null

时间:2013-07-09 12:01:15

标签: android-activity xamarin.android mvvmcross

我正在尝试使用NFC和MvvmCross。所以我创建了一个IntentFilter,如下所示:

[IntentFilter(new[]{"android.nfc.action.NDEF_DISCOVERED"}, 
    Categories = new[] {"android.intent.category.DEFAULT"},
    DataScheme = "bksv-resource", DataHost = "nmt")]

OnResume我正在寻找Intent类型NfcAdapter.ActionNdefDiscovered的动作。发生的是当发现NDEF时,创建Activity并使用里面的数据设置Intent。所有这些在Activity中工作正常,但是在想要使用MvxActivityMvxFragmentActivity时会出现问题。

问题是,当MvxActivity重新创建时,base.OnCreate()调用没有给出ViewModel并且没有给出任何理由,只显示如下输出:

mvx:Diagnostic:  6.09 Loading new ViewModel from Intent with Extras
mvx:Warning:  6.13 ViewModel not loaded for view ScanView

我不完全确定如何为ViewModel找到View,但是,在这种情况下似乎找不到它。为什么会这样?我需要自定义应用程序启动吗?

1 个答案:

答案 0 :(得分:6)

MvvmCross从传入的Intent

中获取其ViewModel导航信息

你可以:

如果您使用的是自定义非MvvmCross Intent,那么MvvmCross显然无法获取其导航信息 - 因此您必须自己创建一种方法来创建ViewModel。