2013-12-12 32 views
0

我正在使用dropbox提供的使用數據存儲區api跨設備同步的android應用程序。它有一組元數據,當用戶第一次將其賬戶與應用程序連接時,需要將其上傳到Dropbox。對於使用相同的Dropbox帳戶登錄的下一個設備,不需要再次創建元數據(因爲它已經存在)。在Dropbox數據存儲區api中同步完成回調

爲了實現這一點,我做了一個查詢,在插入記錄之前檢查元數據是否存在。

問題是,即使表中存在記錄,我的查詢也會得到空結果。我在執行此檢查之前調用sync()方法,但看起來像api檢查本地數據存儲並用空結果返回。

我不確定是否會有這種情況,但其中一項解決方案可能是: - 提供一個同步完成的回調/事件,以確保應用程序確保下載/上傳已完成。 (或) - 對於查詢,還應該有一種方法來檢查服務器,以查看是否存在任何現有記錄(儘管這不會有利於提高查詢時間)。

任何建議將受到歡迎。謝謝

回答

1

「同步完成」是一個有問題的術語......數據存儲API不斷同步。您可以使用DbxDatastoreStatus查看當前是否有任何已知的更改。當你第一次鏈接一個帳戶時,isDownloading字段應該是真實的,所以你可以使用它來關閉「第一次同步」。

至於您的添加初始數據的用例,您可能需要使用具有已知ID(如「元數據」)的getOrInsert。這樣,即使記錄是在多個設備上創建的,您仍然只會得到一條記錄。

+0

我已經使用getOrInsert來達到我的目的。工作正常。謝謝。 – Satya