Android Room LiveData两次启动,一次失效发射
这个问题最初是在一个具有MVVM体系结构(单个活动/多个片段)的项目中发现的,当时对数据库执行插入/删除操作,然后导航回主片段。然后,主片段重新订阅主视图模型中的LiveData,LiveData发射两次:Android Room LiveData两次启动,一次失效发射,android,viewmodel,android-room,android-livedata,Android,Viewmodel,Android Room,Android Livedata,这个问题最初是在一个具有MVVM体系结构(单个活动/多个片段)的项目中发现的,当时对数据库执行插入/删除操作,然后导航回主片段。然后,主片段重新订阅主视图模型中的LiveData,LiveData发射两次: 数据库操作之前对应的一个不正确的过时事件 数据库操作后对应的第二个正确事件 我创建了一个示例来演示这个问题(示例中没有MVVM或多个片段) 在示例应用程序中,您可以使用以下步骤观察陈旧事件: 使用“观察”按钮订阅Room LiveData 使用UNOBSERVE按钮取消订阅LiveDa
- 数据库操作之前对应的一个不正确的过时事件
- 数据库操作后对应的第二个正确事件
- 使用“观察”按钮订阅Room LiveData
- 使用UNOBSERVE按钮取消订阅LiveData
- 使用“添加”按钮将元素插入房间数据库
- 使用“观察”按钮订阅Room LiveData