美文网首页
Caused by: android.database.Stal

Caused by: android.database.Stal

作者: 见字如晤一 | 来源:发表于2018-11-11 23:45 被阅读0次

    这几天修复了程序bug,统一把游标cursor都关闭了一下。一不小心造了个bug。
    通常查询数据库,获取到数据后,都要在finally把cursor关闭,然而需要注意区分:
    context.getContentResolver().query()获得的cursor可以正常使用close()关闭。
    而使用mContext.managedQuery()获得的cursor要区分版本进行关闭,如果在android4.0以上,如果使用了Cursor.close()方法;则会报如下异常:
    E/AndroidRuntime(31184): Caused by: android.database.StaleDataException: Attempted to access a cursor after it has been closed.

    在android 4.0及其以上的版本中,Cursor会自动关闭,不需要用户自己关闭。
    解决办法:
    if(VERSION.SDK_INT < 14) {
    cursor.close();
    }

    相关文章

      网友评论

          本文标题:Caused by: android.database.Stal

          本文链接:https://www.haomeiwen.com/subject/xsoffqtx.html