Sobes.tech
Junior — Middle

Чӣ гуна нигоҳдории маълумот дар дохили ViewModel дар барномаҳои Android амалӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Android, ViewModel нигоҳ медорад маълумотҳое, ки бояд пас аз тағироти конфигуратсия (масалан, гардиши экран) боқӣ монад. Барои ин, ViewModel ҳолатро дар майдонҳои худ нигоҳ медорад, ва ҳангоми такрорсозии Activity ё Fragment маълумотҳо дастрас мемонанд.

Агар лозим ояд, маълумотҳоро дар ҳолати пурра нобуд кардани барнома нигоҳ доштан, истифода мешавад SavedStateHandle — объекти махсус, ки имкон медиҳад ҳолатро нигоҳ доштан ва барқарор кардан.

Масалан истифодаи ViewModel бо SavedStateHandle:

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

Бинобар ин, маълумот дар дохили ViewModel дар хотира нигоҳ дошта мешавад, ва дар ҳолати зарурӣ — дар SavedStateHandle барои барқарор кардан пас аз нобуд кардани раванди кор.