在我的应用程序中,我对 StrictMode 进行了以下设置:

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()
            .penaltyDeath()
            .build());

在某些时候,我注意到我有几个地方没有将 SQLite 操作放在单独的线程中,但它们不会触发 StrictMode 违规。
我已经在使用 Android 5.1.1 的真实设备和使用 4.4.4 和 5.1.1 的 Genymotions 上进行了测试,结果相同。
我记得 SQLite 操作曾经触发 StrictMode 违规,但现在情况并非如此。知道为什么吗?

我在 documentation 中看到以下内容:



是这个原因吗?

最佳答案

SQLite 是一个用 C 编写的库,因此对数据库文件的所有访问确实隐藏在 JNI 调用中。

关于android - 为什么 StrictMode 不捕获 SQLite 的读/写操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38097247/

10-12 00:12