我的应用程序有一个主要活动,它启动两个不同的活动。一个是主游戏,另一个是排行榜。我已经建立了一个 SQLite 数据库。
我需要能够通过主游戏活动视图向数据库添加分数,然后读取排行榜活动视图中的数据。如果我在主活动类中创建数据库,我无法从其他活动访问数据库。有没有解决的办法?
我通常做的是创建一个扩展 SQLiteOpenHelper 并处理所有数据库交互的单例类。
private static String DB_NAME = DATABASE_NAME;
private SQLiteDatabase myDataBase;
private final Context myContext;
private static DataBaseHelper databaseHelperInstance;
private DataBaseHelper(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
}
public static synchronized DataBaseHelper getInstance(Context c) {
if (databaseHelperInstance == null) {
synchronized (DataBaseHelper.class) {
databaseHelperInstance = new DataBaseHelper(c);
}
}
return databaseHelperInstance;
}
然后在你需要它的地方调用它:
DataBaseHelper.getInstance(this.getApplicationContext());
这个博客可能会有所帮助: http ://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html