分享

android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open

 天海544 2014-11-25

一个需要后台长时间运行的程序,运行到一定时间总是出现以下异常:

android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=1 (# cursors opened by this proc=733)

从错误提示上来看,应该是内存泄漏造成Cursor window分配失败。

根据Google搜索的结果,网上的说法都是Cursor未关闭造成。但是关闭不再使用的Cursor是基本知识,程序中并不存在该问题,而且也不存在同一时间同时打开多个Cursor的问题。

既然不是数据库操作本身的问题,我开始怀疑是其他模块存在内存泄漏,影响到了Cursor window的分配。后来经过排查,发现问题出在对Looper的使用上,程序中在多个线程中使用了Looper,但是并没有quit。

对Looper的使用进行修改后,该异常不再出现。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多