欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

wp8内存不足,墓碑时存储状态失败怎么处理

更新时间: 2014-01-05 02:38:15 责任编辑: Author_N1

 

WP8内存不足,墓碑时存储状态失败怎么办?
应用程序向手机新增联系人,当增加的联系人超过1000时,会引发异常,具体操作为:(增加联系人是个异步方法, 在增加过程中更新进度条)增加联系人时按home键休眠或墓碑程序,然后再返回时回报异常:
【message】      "State saving failed. This is most likely due to insufficient State buffer  capacity.   App requires [3342315] bytes which likely exceeds NavServer limit"
【source】       "Microsoft.Phone.Interop"
【stacktrace】   "at Microsoft.Phone.TaskModel.Interop.Task.SaveTaskState()  
              at Microsoft.Phone.TaskModel.Interop.Task.FireOnPause(UInt32 reason)"
请问这是怎么造成的,该如何处理?
--参考方法--
个人认为这应该从联系人备份逻辑来解决,而不是考虑墓碑机制。
--参考方法--
所以要解决数据多的问题,可以考虑将接收到的数据放在独立存贮的空间中,写成文件。这样就没有必要开那样大的全局数据。
--参考方法--
墓碑时不一定要存储在内存的state里面,数据量太大完全可以先存在本地。
--参考方法--
IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
if(isf)
{
IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream("Contacts.csv", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read, isf);
byte[] buffer = "你需要保存的数据" 转换成的byte数组;
if(isfStream)
{
isfStream.Write(buffer, 0, buffer.Length);
}

isfStream.Close();
}

这样就把数据保存在了IsolatedStore的根目录底下的Contacts.csv文件里了
--参考方法--
现把list存本地,然后把导入的序号记在墓碑里。
--参考方法--
引用:
我是这样解决的,
 
 private IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
        {
            if (GlobalContactinfo != null)
                settings["value"] = GlobalContactinfo;
        }

使用IsolatedStorageSettings 存储状态,暂时是没有问题,但是我觉得数据再大点还是会出现问题。因为原因可能是:
 Like all app events, your app will be terminated if it takes longer than 10 seconds to complete this handler. For this reason, we recommend that you save your state incrementally throughout the lifetime of your app. This event is merely a final opportunity to save any unsaved data.

所以在Application_Deactivated时时间有限,我觉得我应该尽量减少将大数据都放在全局量里,在每个页面的OnNavigatingFrom中保存数据。

你说的对。确实有可能失败。
--参考方法--
全局变量在墓碑后是如何恢复的?可以保存在phoneapplicationservice中,或是settings里面,就可以了
--参考方法--
忘了发表情了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:38:15
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12412/
本文WWW.DOC100.NET DOC100.NET版权所有。