Estou passando por este codelab: https://developer.android.com/codelabs/android-lifecycles#6 Ele explica como usar o SavedStateHandle em um ViewModel para sobreviver processo de morte. O construtor do ViewModel é como abaixo:
private SavedStateHandle mState;
public SavedStateViewModel(SavedStateHandle savedStateHandle) {
mState = savedStateHandle;
}
E o viewmodel é inicializado a Atividade da seguinte forma:
mSavedStateViewModel = new ViewModelProvider(this).get(SavedStateViewModel.class);
Quando é o ViewModel do construtor chamado? E como o Viewmodel obter o savedStateHandle
parâmetro do ViewModel?
Editar:
Eu encontrei a resposta para minha pergunta através desta postagem no blog: https://www.rockandnull.com/viewmodel-savedstate/
Ele diz que, se oSavedStateHandle
é o único parâmetro em nosso viewmodel é o construtor by viewModels
delegado dele para o viewmodel automaticamente.
No entanto, Se temos uma combinação de parâmetros personalizados fornecidos pelo framework de injeção de dependência(Punho) e.g: o repositório, um outro casal de tempo de execução de argumentos e.g: categoria selecionada IDENTIFICAÇÃO e o SavedStateHandle para nos ajudar a sobreviver o processo de morte em viewmodel do construtor - Como nós podemos fornecer todos os parâmetros de fábrica?
Por favor, poste um pequeno exemplo para o meu entendimento