gpt4 book ai didi

android-activity - 当 Activity 从 IntentFilter 启动时,ViewModel 为 null

转载 作者:行者123 更新时间:2023-12-05 00:29:18 29 4
gpt4 key购买 nike

我正在尝试将 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 中都可以正常工作,但是当想要使用 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找到 View ,然而,在这种情况下似乎没有找到。为什么会这样?我需要自定义应用程序启动还是什么?

最佳答案

MvvmCross 从传入的 Intent 中获取其 ViewModel 导航信息

你可以:

  • 看看 MvvmCross 如何创建它的 Intent在:MvxAndroidViewsContainer.cs#L120
  • 看看 MvvmCross 如何获取信息:MvxAndroidViewsContainer.cs#L87

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

    关于android-activity - 当 Activity 从 IntentFilter 启动时,ViewModel 为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17547700/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com