首先让你知道我是Android新手。
使用ContentProvider仅为一个应用程序处理数据库表操作是一种好习惯吗?
尝试创建多个类来处理数据库表操作。创建了一个数据库帮助程序,如下所示:
公共类WSDatabaseHelper扩展了SQLiteOpenHelper {
private static final String DATABASE_NAME = "wsemp";
private static final int DATABASE_VERSION = 5;
public WSDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
ItemTable.onCreate(database);
CustomerTable.onCreate(database);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
ItemTable.onUpgrade(database, oldVersion, newVersion);
CustomerTable.onUpgrade(database, oldVersion, newVersion);
}
}
创建了一个处理数据库表操作的类:
public class CustomerBean {
private WSDatabaseHelper database;
@Override
public boolean onCreate() {
database = new WSDatabaseHelper(getContext());
return false;
}
public boolean insertObject(valObj) {
SQLiteDatabase db = database.getWritableDatabase();
db.insert(CustomerTable.TABLE_CUST_ACCOUNT_INDEX, null, values);
}
}
但是现在我不确定如何从我的活动或会话文件中调用这个insertObject函数。我试过CustomerBean.isnertObject(obj),但它要求将方法更改为静态。
答案 0 :(得分:3)
使用ContentProvider仅为一个应用程序处理数据库表操作是一种好习惯吗?
如果您的数据仅适用于您的应用程序而其他应用程序无法使用它,我认为没有任何理由使用ContentProviders。 ContentProvider用作将应用程序的数据共享给其他应用程序的接口。如果您的数据可以共享或其他应用程序依赖于它,那么您必须使用ContentProvider。
您还可以为内容提供商创建一组权限,以限制提供商中的某些操作。