簡體   English   中英

移動設備離線與Web服務同步

[英]Mobile devices offline sync with webservice

我正在為我正在編寫的應用程序開發Web服務。 我想使該應用可以脫機訪問。

我創建了該Web服務,以便如果您從Web服務請求JSON,則可以指定一個日期:/ color / colors / date / 2014-03-01T12:00 /

如果不提供日期,則將獲得數據庫內部所有處於活動狀態的內容。 如果您指定日期,則只會獲得該日期之后更新的所有內容。

現在我的問題是,如果我從應用程序的Web服務中刪除了某些內容,則該內容將不會被同步,其他設備將永遠不會知道該內容已被刪除。

我可以在一個我說已刪除記錄的字段上工作,但隨后我需要保留每個記錄,並且不能刪除任何記錄。

有更好的同步方法嗎? 還是最好的方法是什么?

我認為除非您發送有關條目已刪除的信息,否則無法檢測到已刪除條目的更改。 最佳做法是在表中使用整數類型設置一個字段,然后可以在更新時設置此值。 您不必只將其設置為1或0,您可以使用更大的數字(例如,我在3月20日刪除的條目上使用了30,這天發生了代碼邏輯上的重大變化。此后,我知道何時狀態整數為30,則在該日期之后刪除了該行。)這可能是一個愚蠢的示例,但是您可以實現自己的邏輯。

這取決於進行更改后更新其余設備的重要性。

如果很關鍵,則有必要實施推送通知或類似於每個設備的內容,以使他們了解最新情況。 否則,您將只是讓其他設備自行輪詢服務器以檢查是否有更改,並且輪詢的頻率或觸發將再次取決於它們獲得更新的關鍵程度。 也許他們只在訪問某個活動時才需要更新,所以在那種情況下,您只有在達到該活動的onResume()事件時才進行輪詢

更新資料

如果您不需要保留已刪除記錄的歷史記錄,那么為什么不能只刪除它,然后在其余設備更新時清除所有內容並下載新的記錄? 如果過於繁瑣,則需要引用id,您可以在表中進行引用,也可以在字段中使用特殊值(例如null,0或-1)進行標記。 否則將無法引用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM