собеседование

Создание кастомной View в Android

Чтобы создать кастомную View, необходимо проделать следующие шаги Создать класс, который будет наследовать View или же наследника View. Переопределить конструкторы Всего есть 4 конструктора, каждый из них используется для своих целей. Чтобы начать пользоваться кастомной View, необходимо переопределить только один,…

Читать полностью

Способы регистрации BroadcastReceiver и их различия

Есть всего два различных способа регистрации BroadcastReceiver: статический и динамический. Статический способ регистрации — это когда ресивер зарегистрирован через AndroidManifest.xml файл используя тег <receiver>. Динамический же означает, что ресивер был зарегистрирован используя метод класса Context, registerReceiver(). При регистрации ресивера через…

Читать полностью

Что вы знаете про BroadcastReceiver?

Android приложения могут получать различные сообщения от самой системы, а также от других приложений и от других компонентов данного приложения. Эти сообщения называются broadcast (широковещательные сообщения). Например, система рассылает данные сообщения когда запускается или когда устройство подключается к зарядке. Для…

Читать полностью

Сохранение состояния при портретной ориентации в Android

Следует сохранять состояние, так как Configuration Change может произойти не только при изменении ориентации экрана. Изменение ориентации экрана это только частный случай изменения конфигурации. Изменение языка системы например тоже считается изменением конфигурации. Да и сохранять состояние может быть нужно не…

Читать полностью

Что делать при повороте экрана в Android

При смене ориентации приложения Activity уничтожается и создается заново. Удаляются, соответственно, и все объекты. Вызываются коллбэки в составе жизненного цикла onPause(), onStop(), onSaveInstanceState(), onDestroy() – onCreate(), onStart(), onRestoreInstanceState(), onResume(). Чтобы сохранить созданные в активити объекты и данные, необходимо реализовать пару…

Читать полностью

Чем отличается метод onCreate() от onStart()?

Оба метода являются частью жизненного цикла Activity. onCreate() – вызывается, когда активити создается в первый раз или происходит изменение конфигурации. Активити еще не видна пользователю. В методе задаются первоначальные настройки, создаются объекты визуального интерфейса. Этот метод получает объект Bundle, который…

Читать полностью

Содержание файла AndroidManifest.xml

AndroidManifest содержит ключевую информацию о приложении — название, версию, иконки, какие разрешения приложение использует, регистрирует все используемые классы activity, сервисы и т.д. Ключевые теги в порядке вложенности: – в корневом теге по умолчанию определяется пакет приложения. – тег определяет основные…

Читать полностью

Контекст и его использование

Context – это базовый класс, который реализуется самой системой Android. Он предоставляет доступ к базовым функциям приложения. Такие основные компоненты как Activity, Application и другие наследуются от класса Context. Используя контекст, можно: получить текущее состояние (state) приложения, получить доступ к…

Читать полностью

Расскажите про View

View – это класс элемента графического интерфейса. По своей сути View – это общее название для всех элементов графического интерфейса. View это суперкласс всех привычных нам элементов UI Android, таких как TextView, EditText, Button. Но не только эти классы наследуются…

Читать полностью

Расскажите про Fragment

Фрагменты можно представить как легковесную активити. Они представляют собой часть UI, которую можно переиспользовать много раз. Как и у активити, у фрагмента есть свой lifecycle, layout и он может обрабатывать действия пользователя на своем layout. С помощью фрагментов можно внести…

Читать полностью

Опишите жизненный цикл Activity

Activity может находиться в одной из различных стадий, в зависимости от нужд приложения и действий пользователя. Стадии жизненного цикла жестко контролируются системой. Жизненный цикл активити состоит из шести основных методов: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(). onCreate() – вызывается при…

Читать полностью

Расскажите про Activity и способы его запуска

Activity – базовый компонент в системе Android. Его можно ассоциировать с отдельным отображаемым экраном, то, что пользователь видит и с чем взаимодействует. Activity позволяет размещать в себе все компоненты пользовательского интерфейса в виде View или фрагментов. Приложение может иметь одну…

Читать полностью

Основные составляющие android приложения

— Activities— Services— Content providers— Broadcast Receivers Activity — видимая часть приложения, отвечает за графическое отображение интерфейса. Весь UI и функциональность, которая видна пользователю. Service — предназначен для выполнения длительных операций, работает в фоновом режиме. Такие операции не требуют взаимодействия…

Читать полностью

Лишает ли var строгой типизации?

Слово var впервые появилось было введено в десятой версии Java. Оно указывает, что тип переменной определяется при компиляции, в зависимости от того, чем данная переменная будет проинициализирована. Из этого следует что: var можно использовать только для локальных переменных; они нуждаются…

Читать полностью

Отличаются ли сокращенные и обычные операторы?

К сокращенным или как их официально называют операторам сложного присваивания относятся, например, *= или |=. При их применении нужно учитывать один нюанс. Оператор x *= y эквивалентен x = (XType)(x + y). Таким образом при выполнении этих операторов происходит неявное…

Читать полностью

Какие бывают проблемы с арифметикой в Java?

Числа относятся к примитивным типам, поэтому они занимают в памяти определённое, не безграничное пространство, что накладывает ограничения на диапазон значений. Если в результате выполнения математической операции получится число, выходящее за эти пределы, то возникает ошибка переполнения. В этом случае помогут…

Читать полностью

Как сравнивать элементы перечисления?

Компилятор преобразует экземпляры enum в static константы, которые к тому же являются singleton-ами. Поэтому, для сравнения можно использовать «==». Все классы наследуются от java.lang.Enum. При этом все методы, кроме toStrng являются финальными. Поэтому, функция equals, также подходит для сравнения перечислений.…

Читать полностью

Может ли название класса не совпадать с названием файла?

В файле *java должен находиться единственный главный публичный класс, при этом его название обязано быть тем же что и у файла, в котором он расположен. Классов, определённых как protected и private не существует. Но на package-protected class приведенное выше правило…

Читать полностью

Как обойти коллекцию?

Существуют следующие способы: С помощью циклов for или while. В этом случае индексная переменная увеличивается от 0 до размера коллекции, определить который можно с помощью функции size(). В этом случае можно организовать неполный обход или обход с не стандартным шагом.…

Читать полностью

Что будет со ссылкой на метод, если заменить объект-владельца?

Чтобы ответить на данный вопрос требуется знать, что такое ссылки и что такое ссылки на метод. Если метод обычный, не статический, то для него применяется позднее связывание. При обращении к данному методу по указанной ссылке мы получаем нужный метод. В…

Читать полностью