我正在尝试在网络服务器和 android 应用程序之间同步数据。所以,我遵循这个很好的建议:在 Android 应用程序和网络服务器之间同步数据
现在,我实际上是在做内容提供者的第一部分。为此,我找到了本教程:http ://www.vogella.com/articles/AndroidSQLite/article.html
在该教程中,他们建议您应该为每个表执行一个 SQLiteOpenHelper。这对我来说还可以,但我意识到这有点奇怪,因为我将为每个表创建一个文件
像这样:
public class AppUserDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "appusertable.db";
private static final int DATABASE_VERSION = 1;
public AppUserDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
AppUserTable.onCreate(database);
}
}
所以,我开始做一些研究,我发现:数据库中的每个表是否应该有一个 SQLiteOpenHelper? 特别是这个链接:http: //blog.foxxtrot.net/2009/01/a-sqliteopenhelper-is-not-a-sqlitetablehelper.html,这对我来说很有意义。
好吧,我的问题是,实际上每个表都有一个 ContentProvider 也很有意义,因为如果我不这样做,它会很大而且非常混乱,但是在每个 ContentProvider 中,我实际上是在创建数据库:
public class AppUserContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
database = new AppUserDatabaseHelper(getContext());
return false;
}
}
这也让我可以访问数据库。
所以我的问题是:我应该为所有表做一个巨大的 ContentProvider 吗?或者还有另一种方法来创建应该在每个 ContentProvider 之间共享的数据库?
我希望你能帮助我谢谢你的建议