В чем разница между LiveData.observe() и LiveData.observeForever()?

Посмотреть в Telegram: @AndroidSobes/196
Метод LiveData.observe() принимает два параметра: lifecycleOwner и observer. Вся функциональность, описанная в предыдущем посте, предоставляется через этот метод. 
LiveData следит за жизненным циклом lifecycleOwner, доставляет ивенты только активным подписчикам и удаляет подписчиков, которые перешли в состояние DESTROYED.

Метод LiveData.observeForever() принимает один параметр: observer. Этот метод реализует классическую схему шаблона Observer-Observable. Ивенты доставляются подписчику всегда, незавимо от его состояния.
Также существует симметричный метод LiveData.removeObserver(), созданный для ручного удаления подписчиков.
Обычно метод observeForever() используется в тестах, а не в коде приложения.