在我的应用程序中,我对 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 违规,但现在情况并非如此。知道为什么吗?
我在文档中看到以下内容:
值得注意的是,来自 JNI 调用的磁盘或网络访问不一定会触发它。
是这个原因吗?