Realm数据库如果存储内容多了可能会引致OOM问题,直接抛出RealmError(注意是UnChecked Error级别的,子线程和try catch通通拦不住),请各位一定小心使用。
github上有相关的issue:https://github.com/realm/realm-java/issues/1680
stackoverflow:
http://stackoverflow.com/questions/38051678/realm-android-application-crash-io-realm-exceptions-realmerror-unrecoverable-e
http://stackoverflow.com/questions/31510545/io-realm-exceptions-realmerror-unrecoverable-error-mmap-failed-out-of-memor
官方的建议给出的居然是要做好内容优化。这个...
这个Realm在底层的实现原理有很大关系,底层C++调用了mmap,将大量数据内容映射到了内存。。。,这其中的风险,难道不应该警示一下开发者吗?
然而官网的文档对此只字未提。。。
总之,realm api看似不错,千万慎用,就算用,也不要存太多东西。似乎存储上限是25MB,此数据精确性有待核实。
贴出这个异常: