If you need simple solution, try this one:
class SingleLiveData : MutableLiveData() {
override fun observe(owner: LifecycleOwner, observer: Observer) {
super.observe(owner, Observer { t ->
if (t != null) {
observer.onChanged(t)
postValue(null)
}
})
}
}
Use it like a regular MutableLiveData