我想实现一个FileObserver来在某个文件更改时写入日志。这应该在启动和关闭之间的任何时间运行。启动它后,没有活动必须再次访问它。
我写了一个Service
持有我的实例FileObserver
。但是 onEvent() 只触发一次,我的服务根本没有出现adb shell service list
。
这是实现持续后台服务的错误方法吗?
public class MyService extends Service {
private static FileObserver fileObserver;
@Override
public void onCreate() {
File file = new File("path/to/file");
if (file.canRead()) {
fileObserver = new FileObserver(file.getAbsolutePath(), FileObserver.MODIFY) {
@Override
public void onEvent(int event, @Nullable String path) {
Log.i("FileObserver", "File modified!");
}
};
fileObserver.startWatching();
}
}