在我的Android应用程序中,我想从目录中检测事件。这是代码:
String path = Environment.getExternalStorageDirectory()
+ File.separator + "test2";
Log.d("test", "path is " + path);
FileObserver fileObserver = new FileObserver(path, FileObserver.ALL_EVENTS) {
@Override
public void onEvent(int event, String path) {
Log.d("test", "event dectect " + event + " " + path);
}
};
fileObserver.startWatching();我将新文件复制到目录中。但我什么都不知道。请告诉我我在哪里出了错。
发布于 2015-09-05 05:10:18
不能使用局部变量来存储FileObserver,在运行该方法后,它将可用于垃圾收集。
警告:如果FileObserver被垃圾收集,它将停止发送事件。为了确保不断地接收事件,必须从其他活动对象中保留对FileObserver实例的引用。
解决方案:将其保存到字段中。
发布于 2018-05-31 12:31:22
增加存储权限对我有效。
发布于 2016-05-31 21:16:30
FileObserver似乎不工作在符号链接上,这就是Environment.getExternalStorage()返回的内容。
对我来说,诀窍是使用File.getCanonicalPath()解析链接
示例:
File file = new File(Environment.getExteranlStorage(), "myfile");
new FileObserver(file.getCanonicalPath()) ...https://stackoverflow.com/questions/32409638
复制相似问题