Вы не можете заставить то, что хотите. Как вы можете видеть из кода, они публикуют результат в MainThread, вызывая:
ArchTaskExecutor.getInstance()
Так что теперь можно было бы поддерживать синхронизацию между двумя различными объектами LiveData. Это ваша работа, сделайте это. Это угловой случай.
Просто используйте setValue вместо postValue непосредственно в MainThread. Вот пример.
открытый класс MainThreadExecutor реализует Executor {
private final Handler handler = new Handler(Looper.getMainLooper());
@Override
public void execute(Runnable runnable) {
handler.post(runnable);
}
}
public class YourClass {
MutableLiveData first_MutableLiveData = new MutableLiveData<Data>();
MutableLiveData second_MutableLiveData = new MutableLiveData<Data>();
private final Executor executor;
public YourClass(Executor executor) {
this.executor = executor;
}
void foo(){
executor.execute(new Runnable(){
@Override
public void run() {
first_MutableLiveData.setValue(newData);
second_MutableLiveData.setValue(newData);
}
});
}
}