마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

FileObserver 1회 감지 후 그다음부터 감지 안되는 문제

0 추천

안녕하세요.

서비스에서 FileObserver를 이용해 스크린샷 캡쳐가 되었는지 여부를 판단하고있습니다.

그런데 1회 감지 후, 이후부터의 캡쳐는 감지를 하지 않습니다.

어플 삭제 후 재시작 하면 또 1회를 감지하고 그다음부터 감지를 하지 않습니다.

 

FileObserver observer = new FileObserver(path) {

@Override
public void onEvent(int event, String file) {
event &= FileObserver.ALL_EVENTS;
if (event == FileObserver.CREATE) {
Log.d(TAG, "Observer : 파일생성 감지");
Log.d(TAG", "Observer : 파일 - " + file);
}
}
};
observer.startWatching();

 

위 소스는 서비스의 onCreate 안에 들어가있습니다.

 

어떻게 해결해야하는지 도움부탁드립니다.

음무 (17,820 포인트) 님이 2015년 1월 7일 질문

1개의 답변

+1 추천
 
채택된 답변

http://developer.android.com/reference/android/os/FileObserver.html

Warning: If a FileObserver is garbage collected, it will stop sending events. To ensure you keep receiving events, you must keep a reference to the FileObserver instance from some other live object.

 

FileObserver observer 이부분을 유지시키세요. 멤버로 두던지해서..

persist 해야되면 멤버로 정의해도 해당 클래스가 파괴되면 의미가 없어지니.. 보통 서비스로 작업하곤 합니다.

neokii (1,280 포인트) 님이 2015년 1월 7일 답변
음무님이 2015년 1월 22일 채택됨
...