Рубрика: 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: