使用JetPack Room作为内存缓存来共享多个活动中的状态

时间:2019-01-27 12:02:59

标签: android android-room android-livedata android-jetpack

我现在正在尝试在多个活动中实现共享状态(例如在Twitter中)。例如,在列表活动和详细活动中共享相似状态。

到目前为止,我的想法是从存储库返回LiveData并在两个活动中订阅它,就像使用LiveData实现的内存缓存一样。存储库将如下所示。 (这不是真正的代码,但我想很容易想象它是如何工作的)

then

当我在Room的文档(https://developer.android.com/reference/android/arch/persistence/room/Room#inmemorydatabasebuilder)中找到Room的内存数据库时,尽管将Room内存数据库用作缓存可能会很好,因为它可以返回LiveData并可以在db时通知已更新。但是在文档中,内存db似乎仅用于测试。

所以我的问题是,Room in-memory db可能是实现缓存的好方法吗?如果没有,还有没有比LiveData对象更好的方法。

1 个答案:

答案 0 :(得分:-1)

宾果!我也有同样的想法,大声笑。 我认为,使用较短的命中缓存的方法会提高性能。 从内存数据库中获取缓存的命中率,mm ...还有很多事情要做。但是仅检查测试中的业务逻辑并不能提高性能。 希望以上有帮助。

github.com/halohoop