Sobes.tech
Junior

Uveďte značky a rozhraní v Android vývoji.

sobes.tech AI

Odpověď od AI

Markerové rozhraní (Marker Interfaces) v Androidu jsou rozhraní bez metod, která se používají k označení třídy a poskytují kompilátoru nebo prostředí běhu informace o typu objektu.

Příklady:

  • Serializable: Označuje, že objekt může být serializován (uložen do proudu bajtů) pro pozdější deserializaci. Používá se pro přenos dat mezi komponentami, ukládání stavu.
  • Parcelable: Efektivnější verze Serializable pro Android. Umožňuje "balení" objektů do Parcel pro rychlý přenos. Vyžaduje implementaci metod writeToParcel a vytvoření CREATOR. Používá se pro přenos dat mezi Activity, Service, BroadcastReceiver.
  • Cloneable: Označuje, že objekt může být klonován metodou Object.clone().

Rozhraní v Androidu se používají k definování kontraktů, zajištění polymorfismu a zpětných volání.

Příklady:

  • Listeners (posluchači událostí):
    // Příklad posluchače kliknutí
    View.OnClickListener
    
  • Callbacks (zpětné volání):
    // Příklad zpětného volání pro výsledek požadavku
    retrofit2.Callback
    
  • Adapters (adaptéry):
    // Příklad adaptéru pro seznam
    androidx.recyclerview.widget.RecyclerView.Adapter
    
  • Lifecycle Observers (pozorovatelé životního cyklu):
    // Příklad pozorovatele životního cyklu
    androidx.lifecycle.LifecycleObserver
    
  • Runnable: Používá se k definování kódu, který se vykonává v samostatném vlákně.
    java.lang.Runnable
    
  • Comparable/Comparator: Pro definování pořadí třídění objektů.
    java.lang.Comparable
    java.util.Comparator
    
  • ServiceConnection: Pro interakci s připojenou službou.
    android.content.ServiceConnection
    
  • Binder: Základní třída pro implementaci vzdálených volání procedur (IPC).
    android.os.Binder