Рубрика: 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 при возврате назад. Инстанс…

  • Бывают ли в Android-е stop-the-world паузы?

    Да, в Android могут происходить stop-the-world (STW) паузы во время сборки мусора (Garbage Collection), даже при использовании ART (Android Runtime). Хотя ART использует оптимизированные сборщики мусора, такие как Concurrent Mark-Sweep (CMS) и Generational GC, некоторые этапы сборки мусора, такие как marking phase или heap compaction, могут временно приостановить выполнение всех потоков приложения для корректного освобождения…

  • Какой GC в ART?

    В Android Runtime (ART) используется Garbage Collector с рядом оптимизаций, чтобы минимизировать задержки при сборке мусора и повысить производительность:

  • Как получить утечку памяти в Android-е?

    В Android утечки памяти происходят, когда объекты, которые больше не нужны, не освобождаются сборщиком мусора (Garbage Collector) из-за оставшихся на них ссылок. Основные причины утечек: Для обнаружения утечек можно использовать инструмент LeakCanary.

  • Сколько может быть процессов в Android приложении? Сколько потоков?

    Процессы в Android: Потоки в Android: