Sobes.tech
Junior — Middle

Конфигурацияны өзгөртүп жатканда системанын учурдагы абалын кантип сактап калуу керек?

sobes.tech AI

AIден жооп

Androidда, конфигурация өзгөргөндө (мисалы, экранды айландырууда) системанын учурдагы абалын сактоо үчүн Activity же Fragmentтин абалын сактоо механизми колдонулат.

Негизги ыкмалар:

  1. onSaveInstanceState(Bundle outState) — керек болгон маалыматтарды Bundle объектисине сактоого мүмкүндүк берген метод. Бул маалыматтар Activity кайра түзүлгөндө onCreate же onRestoreInstanceState методдорунда жеткиликтүү болот.

  2. ViewModel — Android архитектуралык компоненттеринен бирөө, ал конфигурация өзгөргөндө маалыматтарды сактайт жана Activity менен бирге кайра түзүлбөйт.

  3. UI компоненттеринин абалын сактоо — көптөгөн стандарттык виджеттер өз абалын автоматтык түрдө сактайт, эгерде аларга уникалдуу идентификатор берилсе.

Мисал: эсептегичтин абалын сактоо:

class MainActivity : AppCompatActivity() {
    private var counter = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        counter = savedInstanceState?.getInt("counter_key") ?: 0
        // UIны актуалдуу counter мааниси менен жаңыртуу
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("counter_key", counter)
    }
}

Мындай жол менен конфигурация өзгөргөндө маалыматтар жоголбойт жана колдонуучу ошол эле интерфейс жана абалды көрөт.