Sobes.tech
Junior — Middle

Môžete vysvetliť, kto iniciuje volanie funkcie onSavedStateHandle v Android?

sobes.tech AI

Odpoveď od AI

V Androide sa SavedStateHandle používa na uloženie a obnovenie stavu ViewModel pri jeho znovuvytvorení, napríklad pri otočení obrazovky.

Funkcia alebo metóda spojená s SavedStateHandle je zvyčajne volaná systémom Android Architecture Components. Iniciátorom volania je framework ViewModelProvider, ktorý pri vytváraní ViewModel odovzdáva objekt SavedStateHandle do konštruktora ViewModel.

To znamená, že vývojár deklaruje ViewModel s parametrom SavedStateHandle, a pri vytváraní ViewModel systém automaticky odovzdá tento objekt. Príklad:

class MyViewModel(private val state: SavedStateHandle) : ViewModel() {
    fun saveData(data: String) {
        state.set("key", data)
    }

    fun getData(): String? {
        return state.get("key")
    }
}

Týmto spôsobom prebieha volanie a správa SavedStateHandle v rámci infraštruktúry Androidu, a vývojár ho jednoducho používa na uloženie stavu.