SQLite
 sql >> Database >  >> RDS >> SQLite

SQLiteDatabase android IllegalStateException

Non credo che dovresti ottenere una nuova istanza di SQLiteDatabase come quella ogni volta. Si desidera mantenere un riferimento all'oggetto SQLiteDatabase nel proprio SQLiteOpenHelper. Il tuo SQLiteOpenHelper dovrebbe essere costruito in modo più simile al seguente:

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);
    }

....
}