我创建了一个databaseprovider类,它使用db对象的单个实例.对象在主活动中创建并关闭onDestroy方法.这似乎没问题(但是得到一些错误,例如:db已经关闭或者数据库未在我无法模拟的某些用户设备上打开).
我想为内容下载的应用程序添加一个服务,这个服务可以使用调度程序运行,这让我想到db对象的单个实例将无法正常工作.我是否应该使用另一个对象进行服务,是否会导致一致性问题?能否建议最好的方法是什么?
public class DatabaseProvider {
private static DatabaseHelper helperWriter;
public static SQLiteDatabase db_global;
public DatabaseProvider(Context c) {
helperWriter = DatabaseHelper.getHelper(c, true);
}
private static SQLiteDatabase getDB() {
if(db_global == null)
db_global = helperWriter.getWritableDatabase();
else if(!db_global.isOpen()) {
try {
db_global.close();
}
catch(Exception ex) {
ex.printStackTrace();
}
db_global = helperWriter.getWritableDatabase();
}
return db_global;
}
public String GetVersion() {
SQLiteDatabase db = getDB();
Cursor c = db.query(DatabaseHelper.PARAMETER_TABLE_NAME, new String[] {"VALUE"}, "KEY='Version'", null, null,null,null);
String version = "";
if(c.moveToNext())
{
version = …Run Code Online (Sandbox Code Playgroud)