2011-10-26 21 views
15

我很困惑哪種方式是最好在應用程序中同步多個表。關於將同步多個表與同步適配器和內容提供者相混淆

我有一個內容提供商,並打算有多個表(事件,用戶等)。我也有一個應用程序應該與之通信的休息服務器。我想知道爲每個表處理多個連接(put,get,post和delete)的最佳實踐。他們也有關係,就像一個用戶可以參加一個活動,但也是活動的主人。因此,如果我爲該用戶創建了用戶和所屬事件,則可以上傳用戶,從服務器獲取有關用戶的信息,使用有關用戶的信息上傳事件,取回該信息,然後更新用戶使用新的事件信息。

解決這些問題的最佳方法是什麼?我應該創建一個聚合應該同步的所有數據的方法(http://example.com/sync)嗎?或者我應該堅持,有時需要15-20個要求?

+0

[這可能是有幫助](http://stackoverflow.com/questions/3814005/best-practices-for-exposing-multiple-tables-using-content-providers-in-android) – Reno

+0

這完全不能回答我的問題。您分享的鏈接(感謝)是關於在內部公開您的內容提供商與Android系統的其餘部分。我的問題更多的是關於如何在外部同步數據,以及如何與服務器進行最有效的連接以發送/接收數據。 – jonepatr

+0

是的,我知道,對不起,我還沒有與SyncAdapters合作過,我會提出你的問題。 – Reno

回答

6

我建議你看Google I/O 2010 - Android REST client applications視頻。 這是對寫作井設計同步應用程序的一些概念和推薦模式的精彩介紹。

我個人發現了我大部分問題的答案。

也看看this presentation。隨着此演示文稿以及隨SDK提供的同步適配器示例,下面的列表將爲您提供充足的彈藥,以便快速啓動並運行同步適配器。

2

這一切都取決於你想要同步的數據量。

如果它只是文本數據,而不是很多,那麼您應該一次全部同步它。我建議將它編碼爲json,並將其壓縮併發送到服務器(在這裏你可以解壓,解析和保存)。 Json是輕量級的,易於在androi上撰寫,並且可以解析幾乎任何類型的服務器。

如果要同步圖像,最好每次同步一個圖像,以確保在連接丟失的情況下保存了部分進度。

7

Evernote已經解決了他們專有EDAM協議的類似問題。值得期待。

Evernote EDAM