这个问题从最初的问题发展而来,这里有一个简短的信息:
我填充了模拟器上的磁盘存储并且它完全没用 - 进程android.process.acore在循环中显示“...已意外停止”对话框,因此系统上无法完成任何操作。我甚至无法使用右侧的电源按钮将其关闭(现在尝试断电10分钟,logcat充满异常)。伟大的它是一个模拟器,我想知道如果它是我的真实设备会发生什么..
也许有人可以详细说明这种行为的原因 - 它应该是这样的吗?
这是最初的问题,请参阅我的编辑:
我很好奇处理随机情况,例如Android设备上的磁盘存储空间不足。
我查看了developer.android.com上的示例,我发现他们甚至懒得去做异常处理。
我可以看到,当谈到SQLite类时,有一些例外,例如SQLiteOutOfMemoryException,但我无法在何时以及如何处理这些场景时找到任何信息。
有没有人有以下经验:
提前感谢您的时间。
[修改
我也在Android问题跟踪器上遇到了这个问题:
http://code.google.com/p/android/issues/detail?id=1653
这有点神秘......而且自2008年以来它似乎是一个幽灵。
[ EDIT2
Alrite,根据评论的建议:我刚刚使用以下方法进行了测试:
dd if=/dev/urandom of=file
选择参数bs和count以适合剩余空间,
并填充/ data分区。
我很惊讶Google地图刚刚在SQLiteFullException上崩溃了。实际上所有应用程序都崩溃了 - 甚至是电话。
没有人处理这些例外是真的吗?这些应用程序是否可以被“......意外停止”而被杀死?
答案 0 :(得分:1)
我处理这个问题的方法是围绕所有文件操作进行错误处理,以便应用程序不会崩溃,并且我在用户使用的目录上执行文件统计(https://stackoverflow.com/a/5083482/1317564)以确保存在足够的自由空间。如果没有,我向他们展示一个很好的大错误消息。 ;)一般来说,手机本身也会有很多抱怨,所以他们迟早会注意到这个问题。
答案 1 :(得分:-1)
这是错误,“手机存储已满!删除一些文件以释放空间。”我至少有7场自由空间。 手机的内存已满。不是你的记忆卡。它们完全是分开的。
尝试卸载一些您不再需要的应用。并尝试清除某些应用上的缓存。