内存被自动释放了

Dean很忙 2014-06-10 11:35:30
引用系统摄像头拍照后,内存由于使用过大被释放了,导致页面上的数据都没了,抛出NULL指针异常。
这个BUG在配置较高的手机上不会出现,在配置较低的手机上必现。
有没有什么好的解决办法?
...全文
317 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
妖怪 2014-06-18
  • 打赏
  • 举报
回复
引用 6 楼 limingjia37544214 的回复:
[quote=引用 3 楼 dxjwolf 的回复:] 把内存分配在C++层来做 自己控制分配释放试试 C++的内存和java层的内存是分开的 应该能申请到 而且能保存住
以前做过类似的吗?这个思路不错,不过不知道如何下手。[/quote] 之前直接改系统源码 倒是改过这一块 说白了就是在jni的层面上自己添加一个内存操作接口 如果有大数据的内存操作都通过这个接口来做 缺点就是需要自己来管理 同时小心C++的内存爆掉 不过可以尝试把C++的内存区块放大一点 去改内存配置脚本即可
Dean很忙 2014-06-16
  • 打赏
  • 举报
回复
引用 5 楼 han1202012 的回复:
内存过大, 被自动释放, 也就是 这么大的内存 是可以存在的, 强行把数据 存到 Application 中, 看看会不会出现 OOM
不是OOM,是启动垃圾回收机制,把全局变量给我清了。
Dean很忙 2014-06-16
  • 打赏
  • 举报
回复
引用 4 楼 hjywyj 的回复:
这和我之前遇到的一个问题有些类似:有些手机有一键清理,清理之后再回到页面时,数据没了。 如果数据不多的话,lz可以试试先将数据缓存到/data/下,回到页面时再读取出来。
没法记录,太多activity了,有时候会自动释放activity。
Dean很忙 2014-06-16
  • 打赏
  • 举报
回复
引用 3 楼 dxjwolf 的回复:
把内存分配在C++层来做 自己控制分配释放试试 C++的内存和java层的内存是分开的 应该能申请到 而且能保存住
以前做过类似的吗?这个思路不错,不过不知道如何下手。
Dean很忙 2014-06-10
  • 打赏
  • 举报
回复
manifest里声明了大内存堆栈,不过还是不够用。 暂时还不想把该页面的东西全部存到数据库。 有没有别的好办法?
哎,真难 2014-06-10
  • 打赏
  • 举报
回复
mark下,我也不会,学习学习
韩曙亮 2014-06-10
  • 打赏
  • 举报
回复
内存过大, 被自动释放, 也就是 这么大的内存 是可以存在的, 强行把数据 存到 Application 中, 看看会不会出现 OOM
  • 打赏
  • 举报
回复
这和我之前遇到的一个问题有些类似:有些手机有一键清理,清理之后再回到页面时,数据没了。 如果数据不多的话,lz可以试试先将数据缓存到/data/下,回到页面时再读取出来。
妖怪 2014-06-10
  • 打赏
  • 举报
回复
把内存分配在C++层来做 自己控制分配释放试试 C++的内存和java层的内存是分开的 应该能申请到 而且能保存住

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧