Performanceverlust durch putExtra?

  • 5 Antworten
  • Letztes Antwortdatum
B

ben56a

Ambitioniertes Mitglied
0
ein grundsätzliches Problem & Frage:

Problem:
Es gibt Activity A und Activity B. Beide Activities müssen auf die gleichen Objecte zugreifen um diese modifizieren oder anzeigen zu können.

Es liegt nahe hierfür die putExtra Methode eines Intents zu verwenden.
1. Frage: Nehmen wir an, es wird eine Liste via putExtra an eine andere Activity übergeben, die sehr sehr groß werden kann. Hat man dann nicht einen enormen Performanceverlust?

Ein weiterer Lösungsansatz meinerseits ist es, in einer Klasse eine Liste zu verwalten, welche über getter und setter befüllt oder gelesen werden kann. Das sind statische Funktionen, damit jede Activity auf die Daten zugreifen kann.
2. Frage: ist das eine akzeptable Lösung?
 
1) ich denke mal es wird ja einfach eine referenz übergeben. das kostet nichts
2) auch möglich
 
  • Danke
Reaktionen: ben56a
1) es wäre z.B. eine Liste an Car Objekten
 
naja ist ja egal was für ne liste und was für objekte - eine referenz ist eine referenz
 
Nein, Extras werden natürlich nicht als Referenz übergeben, sondern serialisiert.
Sonst würde es nicht über Applikationsgrenzen hinaus funktionieren. Tut es aber, du kannst einer anderen App per Intent und Extra was schicken.

Ob es Performanceprobleme gibt in deinem Fall musst du selbst rausfinden. Normalerweise würde ich sagen nein.
Aber es spricht auch nichts gegen eine Holder Klasse. Du musst hier nur bedenken, dass du in dem Fall wirklich auf Referenzen arbeitest. D.h. dein Empfängerintent bearbeitet dieselbe(!) Liste wie der Sender.
 
Code:
private static LinkedList<Car> liCar;

public static void createCarStorage(SharedPreferences sP) throws Exception
	{
		CurrencyStorage.sharedPreferences = sp;
	}

public static void addCar(Car car) throws JSONException
	{
		liCar.add(car);
	}

so habe ich mir das vorgestellt!!??
 
Zurück
Oben Unten