Загрузка данных в бд
У меня есть android-приложение, на основной странице RecyclerView, который заполняется из базы данных, по клику на какой-то элемент происходит загрузка новых элементов из бд и RecyclerView обновляется. Все работает, все замечательно.
Но, появилась задача, загружать в бд данные из json файла, все парсится и происходит сотни добавлений в бд. Естественно при этой операции приложение замирает на несколько секунд, т.к. у нас происходит все в одном потоке. Я только начал заниматься разработкой и не знаю как поступить в этом случае, я так понимаю у меня варианта 2:
- Показать progressbar пользователю и пусть ждет загрузки (чего не хотелось бы)
- Сделать загрузку в отдельном потоке в фоновом режиме, но при клике пользователя на какой-то элемент RecyclerView, будет происходить чтение в бд, как я понимаю, так делать нельзя и я получу ошибку т.к. с бд работает уже другой поток.
Подскажите пожалуйста, как правильно делать в таких случаях?
Источник: Stack Overflow на русском