Rsa97, Резонный вопрос. Тогда бы я использовал setInterval и проверял бы от и до). Ваше решение лучше. Я бы только предложил возвращать сразу 2 значения время в миллисекундах, через сколько открыть или закрыть. Это чтобы решить проблему часовых поясов для фронта, так не будет надобности хранить некоторые две волшебные переменные, ответственные за "21:00" и "22:00"
Google так же рекомендует делать все на фрагментах.
Предлагаю ознакомиться с данным репозиторием гугла. В нем предоставлены примеры приложений на разных архитектурах и шаблонах, везде фрагменты.
У меня был общий вопрос про использование активити/фрагмент, может быть поможет