SD 카드의 특정 디렉토리에 새로운 sqlite가 추가되면 FileObserver를 사용하여 메타 데이터베이스를 업데이트하는 데 문제가 있습니다. 만약 내가 수동으로 디렉토리에 새로운 sqlite를 밀어 adb, 그럼 onEvent(FileObserver.CREATE, <filename>)
전화, 완벽하게 작동합니다. 그러나 FileObserver.startWatching()
을 호출하고 adb가 관찰자가 잡을 새 sqlite를 호출하면 onEvent
(수동으로 호출 할 때와 동일한 매개 변수로 - 확인)을 호출하고 sqlite 파일을 열었지만 찾을 수 없습니다. 해당 테이블 중 내가 새로 열린 sqlite를 쿼리하고 sqlite 예외를 throw합니다.안드로이드 FileObserver는 SQLite를 찾았지만 테이블/내용은 찾지 못했습니다.
나는 SQLiteDatabase의 openDatabase()
메서드를 사용하므로 원본을 찾고 빈 빈 (일반적인 문제)을 만드는 데 실패하지 않습니다. 또한, adb 셸에서 만들어진 동일한 sqlite 쿼리는 새로 추가 된 sqlite의 테이블에 잘 액세스합니다.
왜 이런 일이 일어날 지 아무도 모르는 사람이 있습니까? 내 코드는 수동 호출의 성공을 바탕으로 잘 작동하는 것 같습니다. 필자가 놓친 것 같은 FileObservers 또는 SQLite를 가진 모든 단점을 찾고 있습니다.
UPDATE : 또한 디버깅 내가 파일을 눌러 수동으로 onEvent(FileObserver.CREATE, <filename>)
전화 ADB 있다면,보고 FileObserver를 시작하고 ADB는 같은 위치에 같은 파일을 밀어 것을 보여준다는 FileObserver는 테이블의 위치를 문제없이 그 onEvent
쿼리를 실행합니다. .. 이것이 무엇을 의미하는지 확실하지 않습니다.