我正在創建一個使用REST API的android應用程序(我的第一個)。 我使用後臺作業來獲取內容,並計劃使用帶有from_id參數的GET請求以獲得更多內容。當然,從API獲取的任何東西都存儲在SQLite數據庫中(我正在使用greendao),並且該應用程序僅使用已存在的數據,以便快速完成。你如何處理移動應用程序中的陳舊緩存記錄
所以,問題是:如果給定的記錄在服務器上更新會發生什麼?如果一旦讀取的記錄被緩存,應用程序將如何注意到同步有變化?哪些策略可行?
謝謝。
編輯:
由於薩蒂什p在他的回答中指出,客戶端 - 服務器通信與處理的ETag(我必須添加使用IF-Modified-Since的可能性)。
但我主要關心的是如何將這與應用程序UI混合使用。鑑於此示例:
- 從本地數據庫中讀取已從REST服務中檢索到但從客戶端獲取的元素的列表,以使應用程序更具響應性。
- 用戶單擊其中一個元素並顯示詳細視圖。同樣,數據從本地數據庫加載。我猜想在這一點上,請求使用ETag或If-Modified-Since標題的特定記錄的GET請求。
- 恰巧,服務器返回一個修改後的記錄,因此本地數據被修改,所以現在是時候更新用戶所看到的任何內容。
問題:如果詳細視圖已填充,因爲當遠程請求返回,我怎麼能更新視圖本地數據庫讀取已經做了什麼?我不認爲用新鮮的數據替換當前數據是可以接受的,用戶會看到一個變化。
我找到了一些資源,[這裏](https://neil.fraser.name/writing/sync/)和[here](http://codebrief.com/2013/08/client-sync) - 用於最其餘-的-US /)。你怎麼看? – Papipo 2014-09-07 10:47:59
那麼,那些更多關於修補資源,而不是檢查是否過時。 – Papipo 2014-09-07 21:26:37