Kotlin | Вопросы собесов
2.57K subscribers
28 photos
962 links
Download Telegram
Какие есть методы жизненного цикла Activity и как они отрабатывают ?
Спросят с вероятностью 60%

Методы жизненного цикла Activity представляют собой набор коллбэков, которые вызываются системой при изменении состояния Activity. Эти методы предоставляют возможность управлять поведением приложения при создании, остановке, восстановлении или уничтожении. Понимание и правильное использование этих методов критически важно для создания надежных и эффективных приложений.

Основные методы жизненного цикла:

1️⃣`onCreate(Bundle savedInstanceState)`
Этот метод вызывается при первом создании Activity. Здесь вы должны выполнить все начальную настройку — например, создать пользовательский интерфейс, инициализировать некоторые данные класса. Это место для всего, что должно произойти один раз за время жизни.
Пример: setContentView(R.layout.activity_main); устанавливает разметку пользовательского интерфейса для Activity.

2️⃣`onStart()`
Вызывается, когда Activity становится видимым для пользователя. Это следует за onCreate() (если он запускается впервые) или onRestart() (если он возвращается к взаимодействию с пользователем после его остановки).

3️⃣`onResume()`
Вызывается непосредственно перед тем, как Activity начинает взаимодействовать с пользователем. В этот момент он находится на переднем плане (на экране). Это последний метод, который вызывается перед тем, как он начнет получать ввод данных от пользователя.

4️⃣`onPause()`
Вызывается, когда система собирается продолжить или возобновить другую Activity. Этот метод используется для остановки динамических элементов, которые могли быть запущены во время onResume() или для освобождения ресурсов, которые могут быть нужны другим.

5️⃣`onStop()`
Вызывается, когда Activity больше не видимо пользователю, потому что другое Activity было возобновлено и покрыло его. Это может быть использовано для выполнения более "тяжеловесной" очистки ресурсов.

6️⃣`onRestart()`
Вызывается после того, как Activity было остановлено, но снова начинает запускаться для взаимодействия с пользователем. onRestart() восстанавливает его состояние в том виде, в каком оно было перед тем, как было остановлено.

7️⃣`onDestroy()`
Этот метод вызывается перед уничтожением Activity. Это последний вызов, который он получает. Здесь можно освободить все ресурсы, которые не были освобождены автоматически системой.

Как они отрабатывают

Жизненный цикл начинается с вызова onCreate() и проходит через серию стадий, включая onStart(), onResume(), onPause(), onStop(), и, в конечном итоге, onDestroy(). В какой-то момент, если Activity останавливается, но позже должно быть восстановлено, вызывается onRestart(), за которым следуют onStart() и onResume(). Важно понимать, что каждый метод предназначен для определенной стадии жизни Activity и предоставляет возможность для выполнения соответствующих действий, таких как инициализация, пауза, восстановление и очистка ресурсов.

Методы жизненного цикла Activity — это специальные функции, которые вызываются системой в определенные моменты жизни Activity, чтобы разработчики могли правильно управлять ресурсами и интерфейсом пользователя. Они обеспечивают плавное создание, видимость, взаимодействие, паузу и уничтожение Activity.

👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 1078 вопросов на Android разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
👍283🔥1🎉1
Для чего нужен data class ?
Спросят с вероятностью 60%

Классы данных (data class) предназначены для хранения данных. Основная их задача — упростить создание классов, которые будут использоваться преимущественно для хранения данных, не добавляя при этом лишнего шаблонного кода. Чтобы определить класс данных, достаточно добавить ключевое слово data перед объявлением класса.

Особенности и преимущества:

1️⃣Автоматическая генерация функций:
equals()/hashCode(): Для сравнения объектов по содержимому, а не по ссылкам.
toString(): Для представления объекта в виде строки в удобочитаемом формате.
componentN(): Для деструктуризации объекта на его составные части.
copy(): Для создания копии объекта с возможностью изменять некоторые свойства.

Зачем это нужно?

Его использование позволяет существенно сократить количество шаблонного кода, который разработчикам приходится писать для классов, предназначенных для хранения данных. Это упрощает создание моделей данных и повышает читабельность кода, делая его более компактным и понятным.

Пример:
data class User(val name: String, val age: Int)


В этом примере определен класс данных User с двумя свойствами: name и age. Kotlin автоматически сгенерирует для этого класса методы equals(), hashCode(), toString(), компонентные функции для каждого свойства и метод copy().

Без использования data class, пришлось бы вручную реализовать все эти методы, что ведет к увеличению объема кода и его сложности.

Data class используются для упрощения создания классов, предназначенных для хранения данных. Они автоматически генерируют необходимые методы, что позволяет сделать код более чистым, удобным для чтения и поддержки. Это идеальное решение для моделей данных, где основная цель класса — это хранение данных.

👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 1078 вопросов на Android разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
👍114🔥1
Какие основные компоненты Аndroid-приложения ?
Спросят с вероятностью 53%

Основные компоненты Android-приложения включают Activity, Services, Broadcast Receivers и Content Providers. Эти компоненты обеспечивают основную функциональность приложения, позволяя ему взаимодействовать с пользователем, выполнять задачи в фоновом режиме, реагировать на системные или приложенческие события и управлять данными.

1️⃣Activity представляет собой один экран с пользовательским интерфейсом. Каждая активность предназначена для выполнения одной конкретной задачи (например, выбора фотографии из галереи или отправки сообщения). Пользователь взаимодействует с приложением в основном через активности.

2️⃣Services — это компоненты, которые выполняют длительные или фоновые операции без предоставления пользовательского интерфейса. Например, сервис может воспроизводить музыку в фоне, когда пользователь находится в другом приложении, или синхронизировать данные в фоновом режиме.

3️⃣Broadcast Receivers предназначены для прослушивания и реагирования на широковещательные сообщения от других приложений или системы. Например, приложение может запускать определенные действия или уведомления в ответ на сообщения о низком заряде батареи или загрузке новой фотографии.

4️⃣Content Providers позволяют приложениям хранить и делиться данными. Через них можно осуществлять доступ к данным внутри одного приложения из других приложений, а также управлять доступом к этим данным. Примером может служить доступ к контактам или медиафайлам на устройстве.

Каждый из этих компонентов играет свою роль в создании целостного и функционального Android-приложения. Они могут взаимодействовать друг с другом через явные или неявные намерения (Intents), предоставляя разнообразные способы выполнения задач и обмена данными.

Основные компоненты Android-приложения — это строительные блоки, которые позволяют создавать разнообразные пользовательские интерфейсы, выполнять задачи в фоне, реагировать на события и управлять данными. Эти компоненты включают Activity, Services, Broadcast Receivers и Content Providers.

👉 Можно посмотреть примеры как отвечают люди на этот вопрос, или перейти к списку 1078 вопросов на Android разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
👍9🔥32