我在觀看有關此主題的2010年Google I/O視頻,並且我有幾個問題以確保我理解正確。數據庫和網絡服務模型
Google I/O 2010 - Android REST client applications
請注意,我也有CursorAdapters
的瞭解非常有限眼下我的應用程序只是有一個UI層。我使用一些Google教程創建了一個名爲DbAdapter的對象,以在該數據庫中創建一個小型數據庫和一個表。
我創建了一個類,我調用DataBroker(擴展ContentProvider)來管理從數據庫檢索數據並調用Web服務來更新數據。
方案:
1)假設我想在我的ListActivity顯示項目的列表。我是否正確假設我將在DataBroker中編寫一個函數,該函數爲我的數據庫中的表格創建一個Cursor,該表格包含這些項目,啓動一個服務啓動調用Web服務的線程以獲取其他項目,然後返回Cursor到我的UI線程?這樣做可能會在Web服務完成之前將Cursor返回到我的UI線程,但是,我假設,一旦CursorAdapter有一個Cursor,它會自動顯示對該數據庫表所做的任何更改,是的?
2)現在我有ListView中的項目列表。假設我給用戶一些功能來刪除一個項目。用戶執行此功能。它應該在我的DataBroker中調用一個函數,它更新我的數據庫中對應於該項的行,將狀態列設置爲STATE_DELETING(這將從ListView中刪除行,因爲Cursor有一個不包括此狀態的子句),然後觸發服務會觸發一個線程,觸及我的Web服務,然後在完成後刪除數據庫中的行?另外,假設我有多個Activities,我是否正在尋找每個Activity帶有一個靜態Cursor的列表,在Activity的onCreate中抓住該Cursor,如果該Cursor是null,那麼打我的DataBroker?
我想數據庫命中也需要在服務中。那麼,我有一個服務(命中數據庫)啓動服務(命中網絡服務)? – Andrew 2010-08-20 18:56:02
我想我更傾向於ContentProvider模型。如果有人知道一個代碼片段,我可以真正使用這個教程。 – Andrew 2010-08-20 19:24:13