Sobes.tech
Junior

Nennen Sie Marker und Schnittstellen in der Android-Entwicklung.

sobes.tech KI

Antwort von AI

Marker-Interfaces (Marker Interfaces) in Android sind Schnittstellen ohne Methoden, die verwendet werden, um eine Klasse zu kennzeichnen und dem Compiler oder der Laufzeitumgebung Informationen über den Objekttyp bereitzustellen.

Beispiele:

  • Serializable: Gibt an, dass ein Objekt serialisiert werden kann (in einen Byte-Stream gespeichert) für eine spätere Deserialisierung. Wird verwendet, um Daten zwischen Komponenten zu übertragen, Zustand zu speichern.
  • Parcelable: Eine effizientere Version für Android von Serializable. Ermöglicht es, Objekte in Parcel "einzupacken" für eine schnelle Übertragung. Erfordert die Implementierung der Methoden writeToParcel und die Erstellung eines CREATOR. Wird verwendet, um Daten zwischen Activity, Service, BroadcastReceiver zu übertragen.
  • Cloneable: Gibt an, dass ein Objekt durch die Methode Object.clone() geklont werden kann.

Interfaces in Android werden verwendet, um Verträge zu definieren, Polymorphismus zu gewährleisten und Callbacks zu implementieren.

Beispiele:

  • Listeners (Ereignis-Listener):
    // Beispiel für einen Klick-Listener
    View.OnClickListener
    
  • Callbacks (Rückrufe):
    // Beispiel für einen Rückruf bei Ergebnis einer Anfrage
    retrofit2.Callback
    
  • Adapters (Adapter):
    // Beispiel für einen Adapter für eine Liste
    androidx.recyclerview.widget.RecyclerView.Adapter
    
  • Lifecycle Observers (Lebenszyklus-Beobachter):
    // Beispiel für einen Lebenszyklus-Beobachter
    androidx.lifecycle.LifecycleObserver
    
  • Runnable: Wird verwendet, um Code zu definieren, der in einem separaten Thread ausgeführt wird.
    java.lang.Runnable
    
  • Comparable/Comparator: Um die Sortierreihenfolge von Objekten zu definieren.
    java.lang.Comparable
    java.util.Comparator
    
  • ServiceConnection: Für die Interaktion mit einem verbundenen Dienst.
    android.content.ServiceConnection
    
  • Binder: Basisklasse für die Implementierung von Remote-Prozeduraufrufen (IPC).
    android.os.Binder