3
在我的应用我有StrictMode以下设置:为什么StrictMode不能捕获SQLite的读/写操作?
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操作用于触发严格模式违规,但现在不是这种情况。任何想法为什么?
我在documentation看到以下内容:
值得注意的是,磁盘或网络JNI调用访问不一定会触发它。
这是原因吗?
我明白了。但是,过去是什么解释触发了StrictMode(就像这个问题,例如http://stackoverflow.com/questions/11963601/android-strictmode-policy)? – Ognyan
如堆栈跟踪所示,'SQLiteDatabase'的实现已经添加了显式严格模式检查。这可能被删除,因为并非所有的SQL语句都必须访问该磁盘。 –