Назад к вопросам
Junior
106
questionbank

Перечислите маркеры и интерфейсы в Android-разработке.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Маркерные интерфейсы (Marker Interfaces) в Android — это интерфейсы без методов, используемые для обозначения класса, предоставляя компилятору или среде выполнения информацию о типе объекта.

Примеры:

  • Serializable: Указывает, что объект может быть сериализован (сохранен в поток байтов) для последующей десериализации. Используется для передачи данных между компонентами, сохранения состояния.
  • Parcelable: Более эффективный для Android аналог Serializable. Позволяет объектам "упаковываться" в Parcel для быстрой передачи. Требует реализации методов writeToParcel и создания CREATOR. Используется для передачи данных между Activity, Service, BroadcastReceiver.
  • Cloneable: Указывает, что объект может быть клонирован методом Object.clone().

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

Примеры:

  • Listeners (слушатели событий):
    // Пример слушателя клика
    View.OnClickListener
    
  • Callbacks (обратные вызовы):
    // Пример обратного вызова для результата запроса
    retrofit2.Callback
    
  • Adapters (адаптеры):
    // Пример адаптера для списка
    androidx.recyclerview.widget.RecyclerView.Adapter
    
  • Lifecycle Observers (наблюдатели жизненного цикла):
    // Пример наблюдателя жизненного цикла
    androidx.lifecycle.LifecycleObserver
    
  • Runnable: Используется для определения кода, который выполняется в отдельном потоке.
    java.lang.Runnable
    
  • Comparable/Comparator: Для определения порядка сортировки объектов.
    java.lang.Comparable
    java.util.Comparator
    
  • ServiceConnection: Для взаимодействия с привязанной службой.
    android.content.ServiceConnection
    
  • Binder: Базовый класс для реализации удаленных вызовов процедур (IPC).
    android.os.Binder