Как очистить сохраненную ценность LiveData?

Согласно документации LiveData :

Класс LiveData предоставляет следующие преимущества:

Всегда обновляемые данные: если жизненный цикл снова начинается (например, операция возвращается к начальному состоянию из заднего стека), он получает последние данные о местоположении (если этого еще не было).

Но иногда мне эта функция не нужна.

Например, у меня есть LiveData в ViewModel и Observer в действии:

//LiveData val showDialogLiveData = MutableLiveData<String>() //Activity viewModel.showMessageLiveData.observe(this, android.arch.lifecycle.Observer { message -> AlertDialog.Builder(this) .setMessage(message) .setPositiveButton("OK") { _, _ -> } .show() }) 

Теперь после каждого поворота появится старое диалоговое окно.

Есть ли способ очистить сохраненную ценность после ее обработки или это неправильное использование LiveData?

Ответ Алекс в комментариях – я думаю, именно то, что вы ищете. Вот пример кода для класса SingleLiveEvent . Цель этого класса описана следующим образом:

Наблюдаемый за жизненным циклом наблюдаемый, который отправляет только новые обновления после подписки, используемые для таких событий, как навигация и сообщения Snackbar.

Это позволяет избежать общей проблемы с событиями: при изменении конфигурации (например, при вращении) обновление может быть выбрано, если наблюдатель активен. Этот LiveData вызывает только наблюдаемый, если есть явный вызов setValue () или call ().