БД комнаты, выбрасывающая исключение SQLiteDatabaseCorruptException - PullRequest
0 голосов
/ 22 мая 2019

В нашем приложении мы используем Room DB для локального хранения данных.

На некоторых устройствах пользователей мы замечаем, что БД выдает SQLiteDatabaseCorruptException

Когда мы пытаемсячтобы поместить блок try / catch в операции с БД с помощью SQLException, в которых Android-студия выдает ошибку.

Есть ли лучший способ справиться с этой ошибкой, кроме перехвата исключения?

Любые указатели наэто было бы очень признательно ..

Заранее спасибо.

1 Ответ

0 голосов
/ 22 мая 2019

что вы храните? и как вы храните это? база данных становится поврежденной при чтении или записи?

вот то, что я настроил, и у меня никогда не было повреждения базы данных

Типичное обновление

@Update
void updateCard(Card card);

обновлено из репозитория

public void updateCard(Card card){
    new updateCard(cardDao, card).execute();
}


 private static class updateCard extends AsyncTask<Void, Void, Void> {

    private CardDao mDao;
    private Card card;

    updateCard(CardDao dao, Card card) {
        this.mDao = dao;
        this.card = card;
    }

    @Override
    protected Void doInBackground(Void... params) {
        mDao.updateCard(card);
        return null;
    }
}

но это, скорее всего, проблема с данными, чем, скажем, прерванная транзакция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...