Как сохранить все строки в библиотеке room с помощью Async Task?

Я использую библиотеку room с android. Когда я что-то вставляю в базу данных, я получаю данные для текущего запущенного приложения, но когда я перезапускаю приложение, на экране ничего не отображается. Как получить ранее сохраненные данные without using LiveData?

Это полностью зависит от вашего кода и того, что вы делаете, а также от личных предпочтений.

TomH 08.07.2018 07:35
7
1
2 610
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите получить предыдущие данные, следующий Codelab может вам помочь. Но это действительно зависит от вашей реализации.

How to get previous stored data without using LiveData ? How to get all rows stored in the room library using Async Task?

Объяснение:

В Your Dao включите следующий код:

  @Query("SELECT * FROM user")
    List<CustomObject> getAll();

В свой класс репозитория включите этот фрагмент:

 public List<CustomObject> getAll() throws ExecutionException, InterruptedException {
    return new getAllAsyncTask(mCustomObjectDao).execute().get();
}

private static class getAllAsyncTask extends android.os.AsyncTask<Void, Void, List<CustomObject>> {

    private CustomObjectDao mAsyncTaskDao;
    List<CustomObject> a;

    getAllAsyncTask(CustomObjectDao dao) {
        mAsyncTaskDao = dao;
    }

    @Override
    protected List<CustomObject> doInBackground(Void... voids) {
        return mAsyncTaskDao.getAll();
    }
}

Другие вопросы по теме