什么是追踪SqLite开放光标泄漏的最佳方法?

时间:2015-09-16 04:33:24

标签: android performance android-studio

在大型android代码块的某处是打开游标泄漏。超过800个游标打开。有谁知道最好的方法来确定这一点?有什么方法可以查询如何使用游标?或者通过配置文件工具查看它发生的位置?怎么会这样做?大代码块不想更改大量代码来解决这个问题。我没有看到任何地方检查SQLiteDatabase类上的打开游标数。

1 个答案:

答案 0 :(得分:7)

在你的onCreate方法

中试试这个
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                 .detectLeakedSqlLiteObjects()
                 .detectLeakedClosableObjects()
                 .penaltyLog()
                 .penaltyDeath()
                 .build());

当光标泄漏时,应用程序将因堆栈跟踪而崩溃: - )

  

StrictMode是一个开发人员工具,可以检测您可能正在执行的操作   意外地将它们引起你​​的注意,以便你可以解决它们

http://developer.android.com/reference/android/os/StrictMode.html