Android 应用程序对/data/anr/traces.txt具有读/写权限。但是FileObserver似乎仍然不适合它。
FileObserver 还需要什么才能工作?它适用于SD卡文件。
法典:
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();
找到了解决方案,因此回答了我自己的问题,因为它可以帮助其他人。
看起来使用完整的文件路径"/data/anr/traces.txt"
不起作用。但是使用路径"/data/anr"
工作正常。
仍然不确定为什么完整路径不起作用。
在调用 mFileObserver.startWatching() 之前,您应该确保该文件存在。否则不会通知任何事件。