在更新过程中,玩家存储空间满了的处理办法
2014-06-27 14:14
323 查看
最近一直在纠结更新的问题。整个流程基本上搞定了。目前就在修正一些BUG和,容错处理。
我们知道,在手机上,安装目录是没有写权限的,于是,我们只能把数据写到另外的地方。
要想取得这个路径,使用 writablePath就可以了。
那我们在纠结两个问题
一、数据应该写在哪里
对于IOS来说,由于没有外部存储卡一说,所以,这个地址肯定是在内部存储卡上。
而对于ANDROID来说,虽然主流机型已经开始向一体式存储卡过渡。 但市面上依然存在一些通过SD卡进行存储扩展的机型,并且还不在少数。
面对这样的机型,若要强写内部存储卡,那失败的机率还是挺大的。 通过查看writablePath可以知道,在ANDROID下面,路径是
/data/data/com.org.yourgame/files/ 路径,这个路径是在内部存储卡上的。
我对ANDROID和IOS了解较少,不知道有没有人尝试过写到其它地方上去。
二、空间满了怎么处理
不管是在更新过程中,还是在玩游戏的过程中(如果游戏过程中要写数据的话),都可能导致数据满了。
在更新过程中,如果写文件失败,还可以告诉玩家清除一定数据再继续
这个处理比较简单
就是在游戏中,总是检查玩家的可用空间,如果可用空间不足(比如小于5MB),则弹出提示框,让玩家去清除数据。
这个提示框一直显示,玩家不能关闭。与此同时,依然保持检查,直到空间满足要求,这个框自然消失,游戏继续进行。
这是目前我们公司广泛采用的手法。
这使得可以提示用户清楚空间,同时用户不需要重启游戏
我们知道,在手机上,安装目录是没有写权限的,于是,我们只能把数据写到另外的地方。
要想取得这个路径,使用 writablePath就可以了。
那我们在纠结两个问题
一、数据应该写在哪里
对于IOS来说,由于没有外部存储卡一说,所以,这个地址肯定是在内部存储卡上。
而对于ANDROID来说,虽然主流机型已经开始向一体式存储卡过渡。 但市面上依然存在一些通过SD卡进行存储扩展的机型,并且还不在少数。
面对这样的机型,若要强写内部存储卡,那失败的机率还是挺大的。 通过查看writablePath可以知道,在ANDROID下面,路径是
/data/data/com.org.yourgame/files/ 路径,这个路径是在内部存储卡上的。
我对ANDROID和IOS了解较少,不知道有没有人尝试过写到其它地方上去。
二、空间满了怎么处理
不管是在更新过程中,还是在玩游戏的过程中(如果游戏过程中要写数据的话),都可能导致数据满了。
在更新过程中,如果写文件失败,还可以告诉玩家清除一定数据再继续
这个处理比较简单
就是在游戏中,总是检查玩家的可用空间,如果可用空间不足(比如小于5MB),则弹出提示框,让玩家去清除数据。
这个提示框一直显示,玩家不能关闭。与此同时,依然保持检查,直到空间满足要求,这个框自然消失,游戏继续进行。
这是目前我们公司广泛采用的手法。
这使得可以提示用户清楚空间,同时用户不需要重启游戏
相关文章推荐
- 一句经典的传入字符串在存储过程中的处理办法
- oracle数据库,存储过程编译死锁的处理办法
- 因为不想再程序中写循环,因此把UI页面需要更新的纪录的主键组成了一个以","隔开的字符串,将这个字符串传入存储过程中进行处理(转)
- sqlserver 存储过程拼接SQL字符串有数字的处理办法
- oracle 更新空间数据存储过程语句
- MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法
- oracle 更新空间数据存储过程语句
- oracle错删表空间的处理办法
- .net下 存储过程、事务处理 的一个小例子
- 有没有办法通过写一个存储过程来获取这个?
- 通用的更新存储过程和删除存储过程
- 使用数据2分处理的通用分页存储过程 前半部分与后半部分数据访问时间相同
- 2分分页处理存储过程通用存储过程
- SQL Server 存储过程的分页及空间介绍
- 触发器、存储过程和事务处理使用
- 关于存储过程中一个参数表示多个查询条件使用方法的简单处理
- 自动生成对表进行插入和更新的存储过程的存储过程
- 关于多结果集的存储过程的处理
- 服务器存储空间不足,无法处理此命令
- 最近的项目,也许是产品吧,用的客户好几个,数据库也经常更新,所以就写了个比较数据库表和字段有不同的存储过程