為了避免重復操作數據庫帶來的性能問題,可以將數據庫中的數據一次性讀入到內存中,這樣使得對數據查詢的操作變得更加高效,但是這樣會帶來數據同步的問題,所以需要在每次操作完內存中的數據,同步去操作數據庫中的數據。
項目背景:
在一個Activity中,存在兩個Fragment,當操作一個Fragment的時候,需要對數據庫進行增刪改查的操作,當點擊另外一個Fragment的時候,需要對數據庫中的數據進行同步操作。
設計思想:
1.在Activity的onCreate方法中,一次性將數據從數據庫中讀取出來(使用子線程),並分別設置給兩個Fragment
2.在Fragment中,通過對數據庫的增刪改操作,使用ContentProvider通知觀察者數據發生更新(觀察者在Activity中)
3.Activity在收到數據更新的通知后,重新加載數據,並設置給Fragment后,重新加載數據通知ListView的adapter數據發生變化,需要重新加載數據
