android - 如何有效地使用 android-architecture-components?

标签 android viewmodel android-architecture-components

最近学习了android架构组件的使用。我有一个关于 ViewModel 的问题:

根据架构设计指南,我们可以理解数据是整个应用的核心。 ViewModel 用于管理数据,而存储库用于从网络或数据库中获取数据。

如果你有一个只处理用户交互逻辑的UI,但是几乎不可能从网络或数据库中获取数据,那么交互逻辑代码应该放在ViewModelActivity中/ fragment

另外一个界面,既有逻辑交互又有数据获取,交互逻辑代码应该放到ViewModel还是activity/fragment?

最佳答案

我想你指的是流行的MVP Android 中的模式。 过去看到巨大的 Activity 很常见处理属于 Activity 的所有逻辑的类.

如果您确实指的是 MVP , 那么您可能会喜欢采用可以与 activity 分离的方法的想法执行所谓的逻辑 presenter , 并留下 activity担心渲染。如果您想更进一步,您还可以创建一个行为类似于网络/数据库的类 interactor并且仅使用它来获取数据,从且仅从 presenter 调用.

模型只是 POJO。

它是这样的:

  • activity --> 告诉演示者,hey, a button was pressed, what should I do?
  • presenter --> 回应说,activity, render that error dialog

您不必使用库来完成此操作,但如果与 dependency injection 结合使用,您会发现它会更有效。流行的框架 Dagger 等库。

关于android - 如何有效地使用 android-architecture-components?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48960199/

相关文章:

android - 引用错误的主要原因是什么?

java - Android Studio 下载管理器错误 : IllegalArgumentException Expected file scheme in URI

Android Studio : "Could not get unknown property ' com' for root project 'watchface-master' of type org. gradle.api.Project。”

Prism/MEF 新 View 未从 MEF 导入中获取新 View 模型

android - BottomAppBar 与 BottomNavigationDrawer 连接到 NavigationController

android - 如何用 Android Room 表示嵌套的@Relation?

java - 如何使用 Activity 的 ListView 更新 App Widget

android-jetpack-compose - Jetpack Compose View 模型不更新 View

javascript - 过滤 ViewModel 存储并实现到 ExtJS 面板的正确方法是什么?

android - 更新 recylerview 中的单个项目。我正在使用分页库并想更新单个项目/行