SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLiteDatabase android IllegalStateException

Je ne pense pas que vous devriez obtenir une nouvelle instance SQLiteDatabase comme celle-ci à chaque fois. Vous souhaitez conserver une référence à l'objet SQLiteDatabase dans votre SQLiteOpenHelper. Votre SQLiteOpenHelper devrait ressembler davantage à ce qui suit :

public class DataBase extends SQLiteOpenHelper {

...
    private SQLiteDatabase mDatabase;

    @Override
    public void onCreate(SQLiteDatabase db) {
        ...
        mDatabase = db;
        ...
    }

    void addUser(String who, String time, String table, String phone) {
        ContentValues values = new ContentValues();
        values.put(KEY_NAME, who);
        values.put(KEY_PHONE, phone);
        values.put(KEY_TABLE_RES, table);
        values.put(KEY_TIME, time);
        mDatabase.insert(TABLE_RESERVATION, null, values);
    }

....
}