Warum akzeptiert die Bundle-API von Android ArrayLists anstelle von Lists?

8

Ich bin neu in Android und als ich ein Tutorial zum Speichern des ActivityStatus in einem Bundle durchgesehen habe , habe ich festgestellt, dass die Put-Methoden die allgemeinere ListOberfläche nicht akzeptieren, sondern Bundleerwarten ArrayLists.

Beispiel:

Bundle.putCharSequenceArrayList(key, value)
Bundle.putIntegerArrayList(key, value)
Bundle.putParcelableArrayList(key, value)
Bundle.putStringArrayList(key, value)

Die meisten von uns sind mit Punkt 52 von Effective Java vertraut , der darauf hinweist, dass Objekte über ihre Schnittstelle referenziert werden müssen. Daher frage ich mich, was der Grund für diese API-Entscheidung war.

Ist ArrayListvielleicht die bevorzugte Listenimplementierung in Android?

jramoyo
quelle

Antworten:

9

Nur eine Vermutung: Möglicherweise muss der Bundele-Inhalt serialisierbar sein und nicht jede Lists-Implementierung ist serialisierbar.

Von sdk-doc public Bundle.Bundle (ClassLoader)

  Erstellt ein neues, leeres Bundle, das ein bestimmtes verwendet 
  ClassLoader zum Instanziieren von paketierbaren und serialisierbaren Objekten.
k3b
quelle
macht Sinn! Ich werde noch eine Weile warten, falls jemand eine endgültige Antwort hat.
Jramoyo
Je mehr ich durch das Tutorial gehe, desto sinnvoller ist diese Antwort. also akzeptiere ich es :-)
jramoyo