2014-03-29 1 views
0

Android 애플리케이션에 /data/anr/traces.txt에 대한 읽기/쓰기 권한이 있습니다. 그러나 여전히 FileObserver는 작동하지 않습니다./data/anr/traces.txt에서 FileObserver가 작동하지 않는 이유는 무엇입니까?

FileObserver가 작동하려면 다른 어떤 것이 필요합니까? 그것은 sdcard 파일에 대해 잘 작동합니다.

코드 : 그것은 다른 사람을 도울 수 있기 때문에 그것에

mFileObserver = new FileObserver("/data/anr/traces.txt") { // set up a file observer to 
       @Override 
       public void onEvent(int event, String file) { 
        if(event == FileObserver.CLOSE_WRITE) 
        { 
         Log.e("TestApp", "ANR has occured"); 
        } 
       } 
      }; 
      mFileObserver.startWatching(); 

답변

1

찾을 솔루션 따라서 내 자신의 질문에 대답.

전체 파일 경로를 사용하는 것 같습니다. "/data/anr/traces.txt"이 작동하지 않습니다. 하지만 "/data/anr" 경로를 사용하는 것이 좋습니다.

전체 경로가 작동하지 않는 이유는 아직 확실하지 않습니다.

+0

추측에 따라 파일이 대체되고 대체에 등록 된 옵저버가 없습니다. CLOSE_WRITE 이외의 이벤트를 기록한 경우 대체 작업의 일부 증거가 표시 될 수 있지만 이미 해결 방법이있는 것으로 보입니다. –

0

mFileObserver.startWatching()을 호출하기 전에 파일이 존재하는지 확인해야합니다. 또는 이벤트가 통보되지 않습니다.

+0

이것은 답변이 아니라 [답변을 추가하려면 [명성이 충분하다] (http://stackoverflow.com/help/privileges)를 가지고 있어야합니다.) 코멘트 여야합니다. 명성을 얻고 코멘트 할 수있는 방법을 배우려면 [Help Section] (http://stackoverflow.com/help/whats-reputation)을 참조하십시오. – mathielo