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 작업이 StrictMode 위반을 트리거하는 데 사용되었지만 지금은 그렇지 않은 기억이 있습니다. 왜 그런가?
내가 다음 documentation에서 본 :특히, JNI에서 디스크 나 네트워크 액세스가 반드시 실행되지 않습니다 호출합니다.
이유가 무엇입니까?
알 수 있습니다. 그런데 예전에 StrictMode를 트리거하는 설명은 무엇입니까 (예 : http://stackoverflow.com/questions/11963601/android-strictmode-policy). – Ognyan
스택 추적에서 볼 수 있듯이,'SQLiteDatabase'의 구현은 명시적인 엄격 모드 검사를 추가했습니다. 이것은 아마도 모든 SQL 문이 반드시 디스크에 액세스하는 것은 아니기 때문에 아마도 제거되었을 것입니다. –