Search code examples
androidrx-java2android-architecture-components

How to get value from LiveData synchronously?


For LiveData, is there something similar to blockingNext or blockingSingle in RxJava's Observable to get the value synchronously? if not, how can i achieve the same behavior?


Solution

  • You can call getValue() to return the current value, if there is one. However, there is no "block until there is a value" option. Mostly, that is because LiveData is meant to be consumed on the main application thread, where indefinitely-blocking calls are to be avoided.

    If you need "block until there is a value", use RxJava and ensure that you are observing on a background thread.