Blog about Android

  • Какие компоненты реагируют на смену конфигурации?

    Что такое смена конфигурации? Смена orientation, языка, темы, DPI, UI Mode, fontScale и др.Android при этом может пересоздать компоненты, чтобы адаптировать UI. Какие компоненты реагируют на смену конфигурации? 1. Activity Основной компонент, который всегда реагирует на конфигурационные изменения, если ты явно не переопределил поведение. 2. Fragment Может использовать setRetainInstance(true) (устаревший способ) или ViewModel, чтобы пережить…

  • Какой компонент Android-е запускается первым?

    Ответ: ContentProvider запускается раньше всех Порядок инициализации компонентов Android при запуске приложения: ContentProvider — может предоставлять данные другим приложениям. Он может быть вызван вне зависимости от того, запущено ли приложение. Поэтому Android обязан инициализировать их до всего остального

  • BroadcastReceiver, что такое и зачем нужен? Можно ли отправить интент только внутри приложения?

    Это компонент Android, предназначенный для реакции на широковещательные события (broadcasts). Можно: Да. Можно отправить Broadcast только внутри приложения:

  • ContentProvider, что такое и зачем нужен?

    ContentProvider — это компонент Android, предназначенный для: Если App A хочет получить данные из App B, но App A не знает реализацию App B. Оно просто работает с Uri и Cursor. ContentProvider действует как контрактный интерфейс между ними. Как унифицированный интерфейс доступа к данным работа с: всё работает одинаково через ContentResolver

  • В каких случаях onLayout() вызывается два раза?

    onLayout() дважды (или больше раз) может вызываться в рамках одного layout pass-а — и это может как быть нормальным, так и сигналом об ошибке. onLayout() вызывается два и более раз, если:

  • Методы жизненного цикла View, какие есть, зачем нужны?

    1. constructor() / init Что делает: создаёт View, инициализирует поляВызывается: при создании View — через XML или программно Аналогия: ты строишь мебель по инструкции — ещё ничего не стоит, но детали есть. 2. onAttachedToWindow() Что делает: сообщает, что View добавлена в иерархию окнаВызывается: после того, как View прикреплена к окну Аналогия: ты поставил мебель в…

  • onDestroy() когда будет вызван? onRestart() когда будет вызван?

    onDestroy(): когда вызывается? onDestroy() вызывается, когда Activity окончательно уничтожается — то есть больше не будет возвращена пользователю. Вызывается в трёх основных случаях: При этом: onRestart(): когда вызывается? onRestart() вызывается, когда Activity возвращается из состояния Stopped в Started. То есть: Когда не вызывается onRestart():

  • Смена конфигурации. Как и где обрабатывать? Куда сохраняется этот стейт в системе?

    Что такое «смена конфигурации»? Как происходит пересоздание?Это любое изменение, требующее пересоздания Activity или Fragment, например: По умолчанию Android убивает и пересоздаёт Activity, чтобы применить новую конфигурацию. Как происходит пересоздание? Куда сохраняется Bundle? ‼️ Bundle должен содержать только примитивы, Parcelable, Serializable — иначе он НЕ будет сериализован корректно и Activity не восстановится.

  • Зачем нужен saveInstanceState(), как и где используется? После чего и до чего вызывается onSaveInstanceState?

    Нужен savedInstanceState, чтобы временно сохранить UI-состояние, которое: Аналогия Представь, что ты играешь в шахматы на доске. Вдруг кто-то стучит в дверь, и ты убираешь доску, но фотографируешь позицию фигур. Потом возвращаешься, ставишь доску — и восстанавливаешь фигуры по фото. onSaveInstanceState() — это как сфоткать текущую позицию.savedInstanceState — это снимок доски.onCreate() или onViewStateRestored() — момент, когда…

  • В каких случаях View уничтожается, а Fragment живет? Зачем это может быть нужно?

    Это происходит, когда: ▶️ Fragment переходит в состояние onDestroyView(), но не в onDestroy() Пример:При навигации внутри ViewPager (до ViewPager2) или при использовании фрагментов с FragmentTransaction().replace() / addToBackStack(), когда пользователь покидает экран, но Fragment остаётся в памяти, потому что: Android освобождает ресурсы UI (View), но сохраняет сам Fragment, чтобы быстрее восстановить UI при возврате назад. Инстанс…

  • Что такое атомарные операции? Какие механизмы их реализации можешь перечислить? Атомарны ли операции присваивания?

    Атомарные операции: Атомарные операции — это операции, которые выполняются полностью или не выполняются вовсе, не допуская частичной модификации данных между потоками. Механизмы реализации: Атомарны ли операции присваивания? Операции присваивания примитивов (кроме long и double) атомарны, но не для сложных объектов.

  • Как из HashMap-а сделать потокобезопасный HashMap?

    Чтобы сделать потокобезопасный HashMap, можно использовать следующие подходы: ConcurrentHashMap обычно предпочтительнее, так как предоставляет лучшую производительность в многопоточной среде.