Как сервису работать с БД Room?

102
06 июля 2021, 03:20

Use case: приложение получает текст, отправляет его на сервер и получает аудиофайлы. Эти аудиофайлы должны сохраняться на устройстве и uri этих файлов должны добавляться к записи в БД. Сервис с аудиопроигрывателем должен слушать изменения этого файла в бд и получать обновления списка uri.

Проблема: Изначально логика сохранения файлов была в самом приложении, в репозитории, однако такой подход имеет существенный минус - так как сервис живет дольше приложения, оно может быть вычищено из памяти, что не позволит далее обновлять запись в БД. Соот-но необходимо вынести логику сохранения записи в БД внутрь сервиса, однако тут встаёт вопрос правильного получения самого Room: передать в сервис объект Room мы не можем .

Вопрос: Как правильно организовать доступ к БД (Room) из сервиса.

appDatabase =  Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database")
                .build();

Код выше, вызванный из сервиса, вернёт уже существующий экземпляр БД, или новый?

READ ALSO
Запуск jar (Swing) приложения на машине клиента (Windows)

Запуск jar (Swing) приложения на машине клиента (Windows)

Есть задача - собрать jar file так, чтобы он запускается на машине клиента - WindowsУ меня jar file запускается (двойным кликом или через командную строку...

85
Error 404. The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. Ошибка

Error 404. The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. Ошибка

Ребята помогите уже все перебробовал, но ничего не работаетКогда ввожу localhost:8080 страница откривается, а когда localhost:8080/page -вилетает Error 404

113
java полиморфизм

java полиморфизм

Использование дочернего класса в качестве родительского класса

98
JS - Передача функции в Web Worker

JS - Передача функции в Web Worker

Всем приветПредположим есть файл - script1

79