2012-04-03 8 views
2

Ich bekomme einen Fehler in meiner Anwendung, die wirklich kryptisch ist. Meine einzigen Gedanken sind, dass ich versuche, zu viele Informationen in den Staat zu speichern. Am Ende dieses Posts ist die Fehlermeldung. Ich möchte wissen, ob es eine gute Möglichkeit gibt, zu verwalten, wie viele Daten Sie speichern. Ich benutze gerade einen Zustandsverwalter, um die Daten schnell zu speichern, aber ich muss natürlich etwas mehr Logik hinzufügen, die besagt, dass, wenn Größe> X, Speichern in Isoliert statt Status.State Size auf Windows Phone

Was sind die besten Praktiken dabei?

Fehler: 0x80040204

at Microsoft.Phone.Shell.Interop.ShellPageManager.SetProperty(String name, Byte[] blob) 
    at Microsoft.Phone.Shell.StreamPersister.Save(ShellPageManager shellPageManager, String key, IDictionary`2 dictionary, IEnumerable`1 knownTypes) 
    at Microsoft.Phone.Shell.PhoneApplicationService.FireDeactivated() 
    at Microsoft.Phone.Execution.NativeEmInterop.FireOnPause() 

Antwort

1

Blick auf die doc

You should not use this property for excessive storage because there is a limit of 2 MB for each page and 4 MB for the entire application.

Zunächst einmal würde ich das Design überdenken. Wie viel sparen Sie durchschnittlich? Was ist das Maximum? Es ist eine schlechte UX, dass der Benutzer lange auf das Laden warten muss. Wenn Sie dies wirklich benötigen, sollten Sie nur die Verwendung von IsolatedStorageFile ohne "if Größe> X, Speichern in isoliert" anstelle von "Status" in Betracht ziehen.

+0

Ich denke, ich suche nach Beispielen, wie man weiß, wann man sein Limit erreicht hat. Ich sehe keine Eigenschaften für "Größe" oder "Fußabdruck". Die Größe meines App-Status kann je nach dem Standort einer Person variieren. Größere Städte bedeuten größere Datenmengen. – firebellys

+0

Warum möchten Sie wissen, wann Sie das Limit erreicht haben? Verwenden Sie die Datei standardmäßig, wenn Sie das Limit erreichen können. Wenn Sie wirklich wissen wollen, wann Sie das Limit erreichen, fangen Sie die Ausnahme ab. –

+0

Das Lesen und Schreiben in den isolierten Speicher kann auf einem langsameren Telefon zeitaufwendig sein, ich wollte es vermeiden, wenn es nicht erforderlich ist. Ich werde jedoch versuchen, diese Ausnahmen zu erfassen. – firebellys