2012-04-03 47 views
2

我在我的應用程序中出現了一個錯誤,該錯誤非常隱蔽。我唯一的想法是,我試圖將太多的信息存入狀態。在這篇文章的底部是錯誤消息。我想知道是否有一種好方法來管理您保存的數據量。我現在使用狀態管理器來快速保存數據,但我顯然需要添加更多的邏輯來說明如果Size> X,Save to Isolated而不是State。Windows Phone上的狀態大小

這是什麼最佳做法?

錯誤: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() 

回答

1

看那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.

首先,我會重新考慮設計。平均節省多少錢?最大值是多少?讓用戶等待很長時間才能加載是不好的UX。如果你真的需要考慮使用IsolatedStorageFile而不是「如果Size> X,保存到隔離狀態而不是狀態」。

+0

我想我正在尋找如何知道你什麼時候達到你的極限的例子。我沒有看到「尺寸」或「足跡」的任何屬性。我的應用程序狀態大小可能因人的位置而異。更大的城市意味着更大的數據集。 – firebellys 2012-04-03 17:51:46

+0

爲什麼你想知道什麼時候達到極限?如果您可以達到限制,則默認使用該文件。如果你真的想知道你什麼時候達到極限,那就趕上例外。 – 2012-04-03 18:14:27

+0

在較慢的手機上閱讀和寫入隔離式存儲可能很耗時,除非需要,否則我想避免這種情況。儘管如此,我會考慮捕捉這些例外情況。 – firebellys 2012-04-03 18:16:04