Android文件放丢失,在Android上保存文件时避免数据丢失?

我想知道在

Android上保存文件时,其他人使用什么策略来避免数据丢失.我有几个游戏应用程序,基本上,他们可能会在用户暂停(onPause)时保存游戏状态/保存游戏.

这种情况在99.99%的情况下工作,但每隔一段时间,我会收到一个保存游戏的例子,其中保存过程出错了.通常,这是一个格式不正确的XML文件,通常在某个任意点被截断.根据我收到的错误报告,我相信这个问题大多发生在用户通过电话或类似的游戏进行游戏时中断的情况,而Android操作系统会在完成保存之前杀死应用程序.保存文件的代码很简单,所以我很难看到还有什么可能导致这个问题.

这是一个严重的问题,因为它通常会导致玩家的保存进度被破坏.

我正在考虑首先写一个空文件,然后再复制到“真实”文件,但我怀疑这将简单地增加问题,因为它将总体上花费更多的时间,仍然有风险中断.

任何有安全方式做到这一点的人,Android相对保证不会搞砸?

所以总结一下,到目前为止提出的选择(据我了解):

>使用服务进行保存过程,假设这不太可能被操作系统杀死.

>保存在临时文件中;保存验证后复制.

>增加游戏状态的保存(我实际上已经使用这个播放器日志信息).

>组合2& 3.

>将保存移动到另一个线程,因为ANR可能会导致[DC的注释].

我不认为SharedPreferences将适用于这种结构化数据,目前,这些方法都不是一个理想的解决方案,所以我仍然乐意提出建议.

我还没有设法测试所有这些方法,所以不要浪费赏金,我已经把它分配给我觉得最有可能解决问题的答案.我计划在接受答案之前先查看各种选项.感谢所有好的建议.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值