Android:SQLite DB试图不在每次启动时覆盖值

Android:SQLite DB试图不在每次启动时覆盖值,android,sqlite,Android,Sqlite,我试图弄清楚我需要什么样的顺序来做每件事,以使我的程序运行良好而不崩溃。我希望我的游戏玩家有一个由三个人组成的团队,每个人都有自己的职业,拥有诸如攻击、健康等属性 当游戏第一次安装并运行时,我想制作一个sqlite db,并填充3个初学者角色 当他们在其他任何时候启动它时,我希望将数据库中存储的三个字符分配给3个本地字符对象 我有一个处理Db的SQLite适配器类,但我不确定如何对所有内容进行排序,因此我首先检查程序Db路径中是否有Db,如果有,则打开它。否则,只需创建一个新的并用初始字符填充它

我试图弄清楚我需要什么样的顺序来做每件事,以使我的程序运行良好而不崩溃。我希望我的游戏玩家有一个由三个人组成的团队,每个人都有自己的职业,拥有诸如攻击、健康等属性

  • 当游戏第一次安装并运行时,我想制作一个sqlite db,并填充3个初学者角色
  • 当他们在其他任何时候启动它时,我希望将数据库中存储的三个字符分配给3个本地字符对象
  • 我有一个处理Db的SQLite适配器类,但我不确定如何对所有内容进行排序,因此我首先检查程序Db路径中是否有Db,如果有,则打开它。否则,只需创建一个新的并用初始字符填充它

    我目前有:

    DbAdapter = new PlayerDbAdapter(this);
        DbAdapter.open();
        DbAdapter.setInitialPlayers();    // inserts my initial player object info into the Db
    
    哪个叫

    public PlayerDbAdapter open() throws SQLException {
            dbHelper = new SummonSQLiteHelper(context);
            String s = DbPath + DB_NAME;
            database = SQLiteDatabase.openOrCreateDatabase(s, null);
            return this;
    }
    
    现在我有点不知所措,我需要确保每次启动程序时不会用初始值覆盖数据库中保存的任何信息。有什么建议吗?

    试试这个

    public PlayerDbAdapter open() throws SQLException {
        dbHelper = new SummonSQLiteHelper(context);
        String s = DbPath + DB_NAME;
        bool b=checkDataBase(s);
       if(b==false)
        {
            database = SQLiteDatabase.openOrCreateDatabase(s, null);
            setInitialPlayers(); <---- set initial values here
         }
      else
      {
        database = SQLiteDatabase.openOrCreateDatabase(s, null);
    
      }
      return this;
       }
        private boolean checkDataBase(String str) {
        SQLiteDatabase checkDB = null;
    try {
        checkDB = SQLiteDatabase.openDatabase(str, null,
                SQLiteDatabase.OPEN_READONLY);
        checkDB.close();
    } catch (SQLiteException e) {
        // database doesn't exist yet.
    }
    return checkDB != null ? true : false;
    }
    
    publicplayerbadapter open()抛出SQLException{
    dbHelper=新的调用sqlitehelper(上下文);
    字符串s=DbPath+DB_NAME;
    bool b=检查数据库;
    如果(b==false)
    {
    database=SQLiteDatabase.openOrCreateDatabase(s,null);
    setInitialPlayers();