Difference of setValue() & postValue() in MutableLiveData

Based on the documentation:

setValue():

Sets the value. If there are active observers, the value will be
dispatched to them. This method must be called from the main thread.

postValue():

Posts a task to a main thread to set the given value. If you called this method multiple times before a main thread executed a posted task, only the last value would be dispatched.

To summarize, the key difference would be:

setValue() method must be called from the main thread. But if you need set a value from a background thread, postValue() should be used.

Leave a Comment