我的应用程序有两个数据库表: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