Я работаю над приложением, которое сохраняет транзакции в базе данных SQLite после получения оплаты. Как только транзакция подтверждена, она добавляется в базу данных, и после этого пользователю отображается подтверждение. Я показываю одобрение, когда получаю результат от метода sqlitedatabase.insert (), и проверяю, что он возвращает номер строки.
public static boolean insert(String tableName, SQLiteDatabase sqLiteDatabase, ContentValues contentValues){
long rowId = sqLiteDatabase.insert(tableName, null, contentValues);
return rowId != -1;
}
Проблема в том, что когда одобрение показывается пользователю, я выключаю устройство при извлечении батареи (я тестирую аккумулятор без батареи), и когда я перезагружаю устройство, я вижу, что в базе данных не вставляется запись . Это заставляет меня думать, что SQLite вставляет записи асинхронно после возврата идентификатора строки.
Я использую AsyncTask и делаю вставку в doInBackground, и я показываю одобрение пользователя в onPostExecute () AsyncTask.
Мой вопрос: есть ли способ убедиться, что запись вставляется в тот момент, когда я вызываю метод вставки, или я здесь что-то делаю не так?