и посмотреть медиа
Kotlin | Interview Questions
и посмотреть медиа
Interview questions for Kotlin developers with answers.
Interview questions for Kotlin developers with answers.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Kotlin interview questions: extensions, coroutines, collections. With code examples and explanations for Android and backend.
🤔 View Model vs OnSavedInstanceState? ViewModel и onSaveInstanceState служат для сохранения данных при изменении конфигурации активности или фрагмента (например, при повороте экрана). Однако они решают эту задачу по-разному и имеют разные области применения. 🟠ViewModel ViewModel используется для хранения и управления данными, связанных с UI, таким образом, чтобы они сохранялись при изменении конфигурации (например, при повороте экрана). 🚩Как это работает? Когда система уничтожает и пересоздаёт Activity или Fragment, ViewModel остаётся в памяти до полного уничтожения владельца (например, выхода из Activity). class MyViewModel : ViewModel() { var counter: Int = 0 // Переменная, которая сохраняется при повороте экрана } Использование в Activity class MainActivity : AppCompatActivity() { private lateinit var viewModel: MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) viewModel = ViewModelProvider(this).get(MyViewModel::class.java) // Теперь viewModel.counter сохранится при повороте экрана } } 🚩Плюсы ➕Хранит данные в памяти до полного уничтожения Activity или Fragment. ➕Удобно для хранения сложных объектов списки, модели, API-данные ➕Позволяет разделять логику и UI улучшая архитектуру. 🚩Минусы ➖Данные исчезают при уничтожении Activity например, при закрытии приложения ➖Не сохраняет данные при завершении процесса например, при нехватке памяти 🚩onSaveInstanceState() Метод onSaveInstanceState() используется для сохранения данных в Bundle, который система автоматически передаёт при пересоздании Activity или Fragment. 🚩Как это работает? Когда Activity уничтожается (например, при повороте экрана), система вызывает onSaveInstanceState(), в котором можно сохранить небольшие данные (строки, числа и т. д.). После пересоздания Activity эти данные можно восстановить из savedInstanceState. class MainActivity : AppCompatActivity() { private var counter: Int = 0 // Значение, которое мы хотим сохранить override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Восстанавливаем данные, если они есть counter = savedInstanceState?.getInt("counter_key") ?: 0 } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putInt("counter_key", counter) // Сохраняем значение перед уничтожением Activity } } 🚩Плюсы ➕Сохраняет данные даже при завершении процесса (например, при нехватке памяти). ➕Позволяет быстро восстановить состояние UI (например, текст в EditText). 🚩Минусы ➖Подходит только для небольших данных (числа, строки). ➖Не подходит для хранения сложных объектов (списки, большие модели, API-данные). ➖Требует кодирования и декодирования данных в Bundle Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!