Compartilhe o ViewModel entre fragmentos que estão em diferentes Atividades

Eu tenho um ViewModel chamado SharedViewModel:

public class SharedViewModel<T> extends ViewModel {

    private final MutableLiveData<T> selected = new MutableLiveData<>();


    public void select(T item) {
        selected.setValue(item);
    }

    public LiveData<T> getSelected() {
        return selected;
    }
}

Eu o implemento com base no exemplo SharedViewModel na página de referência do Arch ViewModel do Google:

https://developer.android.com/topic/libraries/architecture/viewmodel.html#sharing_data_between_fragments

É muito comum que dois ou mais fragmentos de uma atividade precisem se comunicar. Isso nunca é trivial, pois os dois fragmentos precisam definir alguma descrição da interface e a atividade do proprietário deve unir os dois. Além disso, os dois fragmentos devem lidar com o caso em que o outro fragmento ainda não foi criado ou não está visível.

Eu tenho dois fragmentos, chamadosListFragment eDetailFragment.

Até agora eu usei esses dois fragmentos dentro de um chamadoMasterActivity. E tudo funcionou bem.

Eu tenho o ViewModel emListFragment, selecionou o valor para usá-loDetailFragment.

mStepSelectorViewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);

No entanto, agora eu preciso disso. Em certos casos,ListFragment (um layout para uma configuração de dispositivo diferente) seja adicionado a uma atividade diferente, chamadaDetailActivity. Existe uma maneira de fazer isso da mesma forma que o exemplo acima?

questionAnswers(5)

yourAnswerToTheQuestion