iT邦幫忙

1

如何做到離線編輯,連網同步資料庫的邏輯!

請教各位大大! 小弟我最近在研究Android遇到了一個問題,需求是必需要可以離線編輯!

所以有下載一些必要的資料提供離線時可以讀取!

不過這一些資料! 是有可能被更新的! 想請問各位大大,如果是這樣的情形。

通常會如何去撰寫!

我的資料是由API 得到JSON檔,一筆一筆迴圈寫進SQLite資料庫。然後離線編輯的時候,都使用這些資料庫讀取資料。

1 個回答

2
cheangerlove
iT邦新手 5 級 ‧ 2017-12-01 16:41:55
最佳解答

我在公司做的APP也是需要類似功能
但是我是使用Realm作為本地資料庫

如果只是單向同步(本地 -> 伺服器)
其實簡單一點的方法就是在一筆資料後面加上資料是否已上傳的欄位
然後連網時去檢查所有本地未上傳的資料,並進行上傳的動作
這樣大概就解決了~

我的APP流程是
開啟APP -> 判斷有無網路 -> (有網路)從遠端取得JSON -> 同步本地資料庫 -> 檢查未上傳資料 -> 上傳完畢 -> 更新本地資料庫

看更多先前的回應...收起先前的回應...

小弟有個疑問想問大大,同部本地資料庫會跳過未上傳的資料嗎?
還有遠端取得json,是每次都取得全部嗎,有沒有辦法只取,server端有更新的部份?
/images/emoticon/emoticon25.gif

小魚 iT邦新手 1 級 ‧ 2017-12-02 11:57:24 檢舉

這應該是要看你程式怎麼寫吧,基本上都是可以做到的,
不過你還要配合遠端的Json,如果那部份不是你寫的話,要跟對方溝通好。

VictorW iT邦新手 5 級 ‧ 2017-12-04 10:33:41 檢舉

謝謝 cheangerlove大,有概念比較好找方向。
現在預計 用更新時間去做判斷!

檢查時回傳本地端最大值更新日期 -> (有網路)傳JSON -> 請遠端回傳更新日期大於我傳送的日期的所有資料給我。

感謝各位大大的分享,小弟也有遇到類似的問題,
本來想用 MD5 做標記,現在看來 更新日期 好像更合適。
/images/emoticon/emoticon37.gif

我要發表回答

立即登入回答