Я стараюсь поддерживать свое приложение в чистоте, используя хорошие принципы дизайна. Я хочу, чтобы представление, слои logi c и базы данных были разделены.
В приложении, над которым я сейчас работаю, у меня есть основное действие, одноэлементный класс, класс logi c и комната для доступа к базе данных. Я хотел бы, чтобы действие сообщило logi c, что нужно извлечь данные из базы данных и затем загрузить их в синглтон. Как только это будет сделано, мне нужно основное действие, чтобы показать данные, загруженные в синглтоне.
Использование комнаты LiveData. Как я могу использовать LiveData и затем каким-то образом вернуть результат в слой logi c, затем загрузить его в синглтон и позволить основному действию теперь, когда оно готово?
В целом, как я могу сказать вызывающей стороне из вызываемого, что данные готовы, когда они асинхронные? Например, если основное действие вызывает класс logi c в другом потоке для загрузки данных, как класс logi c может сообщить основному действию, что оно выполнено?