我的應用程序有兩個數據庫表:Products
和ShoppingCard
。所以我創建了ProductContentProvider
和ShoppingCardContentProvider
。每個ContentProvider
在其onCreate()
方法中調用SQLiteOpenHelper
的孩子的私人類。Android體系結構:使用多個ContentProvider和onUpgrade事件
從我的角度來看我會做一個一個全球性的靜態變量
DATABASE_VERSION
分離ConfigBean,負責都內容提供商。所以如果我更新所有表格都會更新。
=>這是行不通的。只是onUpdate事件永遠不會被觸發。如果指定每個內容提供商
DATABASE_VERSION
,但在每個內容提供商不同版本號
=>這是行不通的。從我的角度來看,這也是沒有意義的,因爲參數SQLiteOpenHelper
被稱爲DATABASE_VERSION
而不是TABLE_VERSION
。換句話說,如果沒有更新/拋出所有onUpgrade監聽器上的事件,則無法更新任何表。如果您在每個內容提供商中指定
DATABASE_VERSION
,但每個內容提供商中的等於版本號。
=>這是有效的。
問:
你爲什麼不能讓DATABASE_VERSION
一個公共靜態變量外globaly處理的升級,還是我完全與我的建築在錯誤的道路上?
儘管這可能在理論上回答這個問題,但[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括了答案的基本部分,並提供了供參考的鏈接。 – 2012-05-22 18:26:00