Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Activity或ViewModel中,我应该在哪里解析来自intent的数据(当扫描NFC标记时)?_Android_Mvvm_Nfc_Android Mvvm - Fatal编程技术网

Android 在Activity或ViewModel中,我应该在哪里解析来自intent的数据(当扫描NFC标记时)?

Android 在Activity或ViewModel中,我应该在哪里解析来自intent的数据(当扫描NFC标记时)?,android,mvvm,nfc,android-mvvm,Android,Mvvm,Nfc,Android Mvvm,我正在开发一个应用程序,它应该根据来自NFC标签的信息显示不同的内容。 基本思想是: 用户扫描NFC标签->Android发送意向->我的活动接收意向->从意向解析NFC数据->从DB获取内容->显示。 问题是我不确定将意图解析代码放在哪里。到目前为止,我有两种选择: 1) 我在activity->read data中从Intent获取NFC标记对象,并将其从字节[]转换为更方便的内容->将此数据解析为ViewModel->VM完成其余工作。根据Android文档,视图应该尽可能简单。但在我的例

我正在开发一个应用程序,它应该根据来自NFC标签的信息显示不同的内容。 基本思想是: 用户扫描NFC标签->Android发送意向->我的活动接收意向->从意向解析NFC数据->从DB获取内容->显示。 问题是我不确定将意图解析代码放在哪里。到目前为止,我有两种选择:

1) 我在activity->read data中从Intent获取NFC标记对象,并将其从字节[]转换为更方便的内容->将此数据解析为ViewModel->VM完成其余工作。根据Android文档,视图应该尽可能简单。但在我的例子中,活动似乎做了太多的工作,比如从intent解析数据并将其转换。此外,它绝对不是与视图相关的代码

2) 在我的活动->将意向对象传递给ViewModel->ViewModel中,我从意向中获取NFC标记对象,然后解析意向中的数据,并完成其余工作。在这种情况下,Activity只传递数据,所以它非常简单,但是ViewModel存在一个问题,现在它需要知道如何处理Intent对象和NFC数据。根据Android文档,ViewModel不应该知道任何关于Android特定的东西,即不应该有Android。*导入。如果我在VM中使用Intent和NFC,那么我必须导入一些特定于Android的类

为了符合MVVM,从Intents获取数据的最佳实践是什么