2013-07-09 3 views
3

Я пытаюсь использовать NFC вместе с MvvmCross. Таким образом, я создал IntentFilter, который выглядит следующим образом:ViewModel null, когда активность началась с IntentFilter

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

И в OnResume Ищу Intent действия типа NfcAdapter.ActionNdefDiscovered. Что происходит, когда NDEF обнаружен, активность создается, а Intent устанавливается с данными внутри. Все это прекрасно работает в Activity, однако возникают проблемы, когда вы хотите использовать MvxActivity или MvxFragmentActivity.

Проблема заключается в том, когда 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 Найден a View, однако в этом случае он, похоже, не найден. Почему это может быть? Нужен ли мне запуск приложения или что-то еще?

+0

Я не уверен, что понимаю, что означает «воссозданный»? Означает ли это, что новый создан и дан savedInstanceState из старого? Или это просто означает, что новый создается? – Stuart

+0

'OnCreate' вызывается, поэтому я предполагаю, что это совершенно новая' Acitivty'. – Cheesebaron

ответ

5

MvvmCross поднимает свое ViewModel навигационной информации от переданного в Intent

Вы можете:

Если вы являетесь пользователем usin g пользовательский не-MvvmCross Intent, то MvvmCross, очевидно, не сможет получить свою навигационную информацию, поэтому вам придется самостоятельно разработать способ создания ViewModel.

+4

Ах. Имеет смысл. Я решил это, создав ViewModel следующим образом: var loaderService = Mvx.Resolve (); ViewModel = (ScanViewModel) loaderService.LoadViewModel ( новый MvxViewModelRequest (типof (ScanViewModel), null, null, null), null); – Cheesebaron

Смежные вопросы