为了避免重复操作数据库带来的性能问题,可以将数据库中的数据一次性读入到内存中,这样使得对数据查询的操作变得更加高效,但是这样会带来数据同步的问题,所以需要在每次操作完内存中的数据,同步去操作数据库中的数据。
项目背景:
在一个Activity中,存在两个Fragment,当操作一个Fragment的时候,需要对数据库进行增删改查的操作,当点击另外一个Fragment的时候,需要对数据库中的数据进行同步操作。
设计思想:
1.在Activity的onCreate方法中,一次性将数据从数据库中读取出来(使用子线程),并分别设置给两个Fragment
2.在Fragment中,通过对数据库的增删改操作,使用ContentProvider通知观察者数据发生更新(观察者在Activity中)
3.Activity在收到数据更新的通知后,重新加载数据,并设置给Fragment后,重新加载数据通知ListView的adapter数据发生变化,需要重新加载数据