Sobes.tech
Junior — Middle

Como é que a preservação de dados é feita dentro do ViewModel em aplicações Android?

sobes.tech IA

Resposta da IA

No Android, o ViewModel guarda os dados que devem sobreviver às mudanças de configuração (por exemplo, rotação de tela). Para isso, o ViewModel mantém o estado em seus campos, e ao recriar a Activity ou Fragment, os dados permanecem acessíveis.

Se precisar guardar dados em caso de destruição completa da aplicação, usa-se o SavedStateHandle, um objeto especial que permite guardar e restaurar o estado.

Exemplo de uso do ViewModel com SavedStateHandle:

class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
    var userName: String?
        get() = state["userName"]
        set(value) {
            state["userName"] = value
        }
}

Dessa forma, os dados dentro do ViewModel são armazenados na memória, e, se necessário, no SavedStateHandle para recuperação após a destruição do processo.