簡體   English   中英

數據庫和Web服務模型

[英]Database and web service models

我正在觀看有關此主題的2010年Google I / O視頻,我有幾個問題需要確保我理解正確。

Google I / O 2010 - Android REST客戶端應用程序

請注意我對CursorAdapters的理解非常有限

現在我的應用程序只有一個UI層。 我使用一些Google教程創建了一個名為DbAdapter的對象,以在該數據庫中創建一個小型數據庫和一個表。

我創建了一個類,我正在調用DataBroker(擴展ContentProvider)來管理從數據庫中檢索數據並調用Web服務來更新數據。

場景:

1)假設我想在ListActivity中顯示項目列表。 我是否正確假設我將在我的DataBroker中編寫一個函數,該函數創建一個Cursor到我的數據庫中保存這些項的表,啟動一個服務,啟動一個調用Web服務來獲取其他項的線程,然后返回Cursor到我的UI線程? 這樣做可能會在Web服務完成之前將Cursor返回到我的UI線程,但是,我假設,一旦CursorAdapter有一個Cursor,它將自動顯示對該數據庫表所做的任何更改,是嗎?

2)現在我的ListView中有一個項目列表。 假設我給用戶一些刪除項目的功能。 用戶執行此功能。 它應該調用我的DataBroker中的一個函數,它更新我的數據庫中與該項對應的行,將status列設置為STATE_DELETING(這將從ListView中刪除該行,因為Cursor有一個不包括此狀態的子句),然后觸發一個觸發攻擊我的Web服務的線程的服務,然后在完成后刪除數據庫中的行?

另外,假設我有多個活動,我是否正在為每個具有列表的Activity創建一個靜態Cursor,在Activity的onCreate中抓取Cursor,如果該Cursor為null,則命中我的DataBroker?

由於沒有人回應,我會回應我所做的(並且似乎正在工作)

應該注意的是,我已經重命名為DataBroker。 我的ContentProvider現在被其他名稱調用,現在我有一個名為DataBroker的擴展服務。

1)我沒有在服務中進行我的Cursor查詢。 我在Activity中調用Cursor,然后調用Service(DataBroker)來查詢Web服務以獲取新數據。 如果找到新數據,DataBroker將廣播一條消息,由任何Activity偵聽接收,然后Activity重新查詢Cursor。

2)我通過Intent將需要刪除的行的ID傳遞給我的服務(DataBroker)。 服務將該ID的狀態列標記為STATE_DELETING,使用Web服務讓我的服務器知道該行已被刪除,如果服務器確認,則從我的數據庫中刪除該行。 此外,在該行被標記為STATE_DELETING之后,我廣播了一條消息,任何感興趣的活動都可以訂閱該消息,讓他們知道我已經這樣做了。 這樣,Activity可以重新查詢其Cursor(它不返回STATE_DELETING行)。

暫無
暫無

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

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