2012-04-12 15 views
0

Ich muss ein Cursor-Objekt von einem Android-Emulator zu einem anderen übergeben. Aber wenn ich versuche, es zu serialisieren, bekomme ich einen Fehler "NotSerialiableException: android.database.sqlite.SQLiteCursor".Cursor NotSerializableException in Android

Ich weiß, dass ein Weg, dies zu handhaben ist zu serializable Klassen abzureißen & serialize (auf einem Emulator), de-serialisiert & das Cursor-Objekt neu erstellen (auf einem anderen Emulator).

Gibt es keinen anderen Weg, dies zu tun? Ich habe Parcelable angeschaut und bin mir nicht sicher, ob das das ist, was ich will. Alle Hinweise werden sehr geschätzt!

Antwort

2

Es gibt keine Chance in der Hölle, dass das funktioniert. Ein Cursor ist im Grunde eine Ansicht des Inhalts Ihrer Datenbank.

Was versuchst du genau zu machen? Wie versuchst du, die Daten zwischen Emulatoren zu übergeben? Wahrscheinlich werden Sie die Daten vom Cursor in etwas einfügen wollen, das wie eine Karte serialisierbar ist.

+0

Ich muss eine verteilte Hash-Tabelle implementieren. Also sind die Schlüssel-Wert-Paare, die ich speichern muss, auf mehrere Android-Geräte verteilt. Und ich sollte ein Gerät für einen bestimmten Schlüssel abfragen können. SO wollte ich den Cursor von Gerät 2 zu Gerät 1 übergeben. Aber Cursor ist nicht serialisierbar (und auch nicht CrossProcessCursorWrapper). Daten werden über TCP-Sockets übergeben. Also bin ich festgefahren. – Neo

+0

Ich denke, der einzige Weg besteht dann darin, eine Liste/Karte von Schlüssel/Wert-Paaren zu haben und dieses Objekt zu übergeben, anstatt zu versuchen, einen Cursor zu übergeben. – Neo

+0

Ich hatte den Eindruck, dass ein Cursor ein Objekt im Speicher ist, das aus dem DB liest und daher nun von den eigentlichen DB-Inhalten selbst losgelöst ist. Deshalb dachte ich, ich könnte ein Cursorobjekt weitergeben. Aber ich könnte mich irren. – Neo