类 应该有权访问 ViewModel

Which classes should have access to a ViewModel

我想知道什么是 good/best 处理 ViewModel 和引用数据库中特定数据的多个活动的做法。

假设我有一个 FriendViewModel 可以访问我的 friend_database(当然是通过 Repository 和 Dao)和一个显示所有 FriendEntities 的 RecyclerView。

如果我现在想以不同的方式编辑朋友 Activity: 将一个或多个 FriendEntities(实现可序列化)传递给意图更好(或更有效),还是我应该传递friendId + FriendViewModel 并使用传递的 FriendViewModel 和 friendId 从 friend_database 检索 FriendEntity?

因为这似乎是一种常见的情况:是否有针对这种情况的最佳做法?

我们通常为不同的 Activities/Fragments 使用单独的 ViewModel,除非我们有想要处理的公共数据,而这正是 SharedViewModel 发挥作用的地方。在您的情况下,我认为根本不需要使用 ShareViewModel。

第一个活动:

ListActivity -> ListViewModel -> FriendRepository -> FriendDao

第二个活动

EditActivity -> EditViewModel -> FriendRepository -> FriendDao

所以这里唯一共享的是你的 RepositoryFriendDao,它围绕着 Friend 模型。

朋友 ID 从 ListActivity 传递到 EditActivity,要求 FriendRepository 使用 DAO 检索该朋友。

这是我个人使用的方法,大多数示例都会使用。