Получи случайную криптовалюту за регистрацию!

Android Interview Review

Логотип телеграм канала @androidsobes — Android Interview Review A
Логотип телеграм канала @androidsobes — Android Interview Review
Адрес канала: @androidsobes
Категории: Образование
Язык: Русский
Страна: Россия
Количество подписчиков: 4.50K
Описание канала:

Популярные вопросы и ответы с собеседований на Android-разработчика.
Канал для Java-разработчиков @JavaSobes
Связаться с нами @SobesAdmin
https://itsobes.ru

Рейтинги и Отзывы

3.00

3 отзыва

Оценить канал androidsobes и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

1

2 звезд

0

1 звезд

1


Последние сообщения

2022-08-31 10:00:11
Найти работу в айти можно 2 методами:

Первый. Бесконечно скроллить HeadHunter и пытаться что-то выклевать на LinkedIn. Офигеть от условий и закрыть.

Второй. Подписаться на Java Job. Это база адекватных предложений, где даже для новичков много мест с хорошей з/п.

Тут найдете работу как в Яндексе (именно сюда крупняки присылают вакансии напрямую), так и в молодых стартапах!

В общем, не теряйте времени и находите работу в 2 клика: @Job_javadevs
879 views07:00
Открыть/Комментировать
2022-08-29 17:02:25 Activity: Как пережить поворот экрана?

При повороте экрана активити уничтожается и создается заново. Вызываются коллбэки onPause(), onStop(), onSaveInstanceState(), onDestroy() – onCreate(), onStart(), onRestoreInstanceState(), onResume().

Чтобы сохранить состояние активити, вы должны переопределить метод onSaveInstanceState() и положить данные в Bundle.

При реинициализации активити, Bundle с сохраненным состоянием передается в onCreate() и в onRestoreInstanceState().

Система вызывает onSaveInstanceState() и onRestoreInstanceState() только в том случае, когда необходимо сохранить состояние, например при повороте экрана или при убийстве активити для освобождения памяти. Данные коллбэки не вызываются, если пользователь выходит из активити нажав Back или если активити убивается вызовом finish().

onSaveInstanceState() вызывается после onStop() на версии API ≥ 28. На API < 28 этот коллбэк вызывается перед onStop() и нет гарантий до или после onPause().

onRestoreInstanceState() вызывается после onStart().

#Activity
#Lifecycle
#State
1.7K views14:02
Открыть/Комментировать
2022-08-28 17:00:04
Mobile Native – канал нашего подписчика и коллеги из мира Android-разработки, на котором он публикует актуальные материалы для мобильщиков: вопросы для собесов, полезные статьи, новости и делится личным опытом.

Присоединяйтесь, полезно будет разработчикам любого уровня. И несколько топовых материалов с канала

Mobile System Design Interviews Series
Как ViewModel переживает изменение конфигурации
Как проверить наличие интернет-соединения
Как оптимизировать RecyclerView

Подписаться → @mobile_native
1.9K views14:00
Открыть/Комментировать
2022-08-26 17:06:00 ​​​Activity: Жизненный цикл

Жизненный цикл активити состоит из шести основных коллбэков, вызываемых системой. В порядке вызова: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy().


onCreate() вызывается когда активити создается. В onCreate() вы должны вызвать метод setContentView().

onStart() вызывается когда активити отрисована и видима пользователю.

onResume() вызывается перед тем как активити станет доступна для взаимодействия с пользователем.

onPause() – метод симметричный onResume(). Пользователь больше не может взаимодействовать с активити, но активити частично видна пользователю. В этом состоянии UI активити может изменяться.

onStop() – метод симметричный onStart(). Вызывается, когда активити больше не видна пользователю.

onDestroy() – метод симметричный onCreate(). Вызывается перед тем, как активити будет уничтожена системой.


Несколько примеров:

1. Пользователь жмет Home. В этом случае активити больше не видна, поэтому вызываются onPause(), onStop(). Пользователь открывает приложение снова - onStart(), onResume().

2. Пользователь переходит на другую активити внутри приложения (реализуется вызовом startActivity()) – onPause(), onStop(). Пользователь возвращается на предыдущую активити – onStart(), onResume().

3. Вызов finish() – onPause(), onStop(), onDestroy(). Когда пользователь перейдет на эту активити снова, она будет создана с нуля без сохранения состояния.

4. Пользователь поворачивает телефон и ориентация активити меняется. Активити пересоздается и вызываются коллбеки onPause(), onStop(), onDestroy(), onCreate(), onStart(), onResume() с сохранением состояния.

Это базовые методы активити. Более подробно они описаны в документации.

В полный жизненный цикл также входят onRestart(), onSaveInstanceState(), onRestoreInstanceState(), onNewIntent() и другие методы, которые разберем в будущем.


#Activity
#Lifecycle
2.3K views14:06
Открыть/Комментировать
2022-08-24 17:02:18 Activity: Что такое и как запустить?

Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.

Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.

#Activity
#Components
2.7K views14:02
Открыть/Комментировать
2022-08-22 17:01:36 Приоритеты процессов

Процессы делятся по приоритету на 4 вида, в порядке убывания:

1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
- Activity, у которой вызван onResume(), но еще не вызван onPause()
- Во время выполнения BroadcastReceiver.onReceive()
- Запущен Service и выполняется один из колбэков: onCreate(), onStart(), onDestroy()

2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
- Activity у которой вызван onPause(), но еще не вызван onStop().
- Service, который запущен через Service.startForeground(). В этом случае пользователь видит нотификацию, связанную с сервисом.
- Service, выполняющий функцию, о которой пользователь осведомлен. Например input method service.

3. Background Service. Процесс с сервисом, запущенным командой startService().

4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в onStop() состоянии.

Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов. Подробнее

#Lifecycle
#System
3.2K views14:01
Открыть/Комментировать
2022-08-19 17:02:19 Может ли приложение быть запущено в нескольких процессах?

Короткий ответ – Да.

Но для начала давайте разберемся чем процесс отличается от потока.

Процесс – это сущность на уровне ОС. Каждая программа может быть запущена в одном или нескольких процессах.

Поток – это сущность на уровне Runtime Environment.

Программа может выполняться в нескольких процессах. В каждом из процессов может быть создано несколько потоков (Java Threads).

Вернемся к андроиду. В предыдущем посте мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов , , , может иметь поле android:process="" в андроид манифесте. Кастомное значение этого поля явно говорит системе в каком процессе будет работать компонент.

Важно: При старте нового процесса создается инстанс приложения и снова вызывается Application.onCreate(). Если в этом методе вы инициализируете модули или библиотеки, которые используются только в главном процессе, то не забывайте проверять, в каком процессе вы находитесь в момент инициализации.

Подробнее про процессы и треды читайте в документации.

#System
2.0K views14:02
Открыть/Комментировать
2022-08-17 17:01:39 Из каких базовых компонент состоит приложение?

Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.

Activity представляет UI и функциональность, видимые пользователю.

Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.

BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.

ContentProvider используется для обмена данными с другими приложениями.

Каждый из компонентов подробнее рассмотрим в будущем.

#Components
2.7K views14:01
Открыть/Комментировать
2020-12-09 12:30:06 Назовите два способа очистить back stack при создании Activity

Флаг интента FLAG_ACTIVITY_CLEAR_TASK используется для того, чтобы очистить все активити таска. Activity, запущенная таким интентом становится новым корнем пустого бэкстека. Этот флаг обязан быть использованным вместе с FLAG_ACTIVITY_NEW_TASK.

Другой вариант – FLAG_ACTIVITY_CLEAR_TOP. Разница в том, что если этот флаг задан, а в таск листе существует старый экземпляр данной активити, все другие активити будут удалены, а корнем станет тот старый экземпляр. Использовать при этом FLAG_ACTIVITY_NEW_TASK не обязательно, но рекомендуется.

#Intent
#Activity
15.4K views09:30
Открыть/Комментировать
2020-12-06 16:00:51 Назовите три основных применения интентов

1. Запустить активити. Intent передается в метод startActivity() явно, либо разрешается с помощью механизма Intent Resolution.

2. Запустить сервис. Можно запустить сервис для выполнения единичной операции, передав Intent в startService().

3. Доставить броадкаст. Для отправки броадкаст-ивента в другие приложения интент передается в sendBroadcast(), sendOrderedBroadcast(), или sendStickyBroadcast().

#Intent
12.6K views13:00
Открыть/Комментировать