在我的应用中,我为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中看到以下内容:
Notably, disk or network access from JNI calls won’t necessarily trigger it.
那是原因吗?
解决方法:
sqlite是用C编写的库,因此对数据库文件的所有访问确实隐藏在JNI调用中.
总结以上是内存溢出为你收集整理的为何StrictMode无法捕获SQLite的读/写 *** 作?全部内容,希望文章能够帮你解决为何StrictMode无法捕获SQLite的读/写 *** 作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)