我有一个Android应用程序,对此我无法弄清楚。让我描述一下当前情况:
这是一个可从REST API检索事件的应用程序。用户可以保存(或收藏)这些事件并将其存储在本地存储中,并且所有保存的事件都需要显示在专用页面上。 我希望用户在没有互联网连接的情况下能够使用该应用程序。所有事件都需要保存在本地并在连接到Internet时进行更新。
我的事件对象有一个“收藏夹”变量,默认情况下为false(当然,默认情况下不会保存事件),并且在用户保存事件时为true。 事件页面从布尔值为true的本地存储中获取所有事件对象。
到目前为止,我很好地实现了这一目标。
现在针对实际问题: 当用户再次连接到Internet时,应通过通过API检索的事件来更新所有本地保存的事件。但是因为默认情况下“ favourited”的默认值为false,所以刷新页面时,每个已保存的事件都将再次变为false。
我应该怎么做?
一些细节:
对于本地存储,我使用RoomDatabase,对于API,我使用改进。
我知道OnConflictStrategy
,但没有更新选项。我曾考虑过使用OnConflictStrategy.IGNORE
,但这意味着如果事件被更新,用户将不会收到更新。
欢迎任何想法或建议
预先感谢
答案 0 :(得分:0)
public class UserFavorite{
boolean favorite=false;
}
public class Event{
//other fields in Event class
@Embedded
UserFavorite userFavorite;
}
请考虑使用Event类从API保存事件详细信息,并且此Event类具有带有用户收藏夹标志的字段类(UserFavorite),默认值为false。
因此,您可以随时更改用户收藏夹标志,并且不会受到使用API更新的影响。