0

私のアプリケーションには、2 つの異なるアクティビティを開始するメイン アクティビティがあります。1 つはメイン ゲームで、もう 1 つはリーダーボードです。SQLite データベースをセットアップしました。

メインのゲーム アクティビティ ビューを介してデータベースにスコアを追加し、リーダーボード アクティビティ ビュー内のデータを読み取れるようにする必要があります。メイン アクティビティ クラスでデータベースを作成すると、他のアクティビティからデータベースにアクセスできなくなります。これを回避する方法はありますか?

4

1 に答える 1

0

私が通常行うことは、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

于 2013-05-06T15:00:24.173 に答える