最近发现 android 的 FileObserver 在2.2下面有几个问题,不知道其他版本是否如此

首先是
public void onEvent(int event, String path)

里面的 path 总是取得 null ,不知道是否属于bug行列,很是纳闷

其次发现源码里面 ObserverThread 的某个关键性变量是

private HashMap<Integer, WeakReference> m_observers = new HashMap<Integer, WeakReference>();

就是有可能导致明明监控了却木有反应的问题,这两个不稳定性因素会导致出现所谓的概率性事件,那就是监控不起作用的问题,所以在要求严格的场合,不要信任文件监控。

另外发现onEvent里面是这么传出来的

char event_buf[512];struct inotify_event* event;int event_pos = 0;int num_bytes = read(fd, event_buf, sizeof(event_buf));event = (struct inotify_event *)(event_buf + event_pos);path = env->NewStringUTF(event->name);


可能是本身 INofity 传上来的时候就没有路径吧,貌似属于BUG。

也许是对 INofity 没有理解透

更多相关文章

  1. Kotlin 风险高、RxJava 已过时,Android 原生开发现状分析!
  2. 归纳整理一些工作学习中发现的不错的网站、博客地址等
  3. 发现自己喜欢了移动端开发--Android
  4. 今天发现的一些优秀的资源网站
  5. Android 出错显示找不到id,但你发现id是存在的
  6. cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容
  7. 发现 developer.android.com 官网的一个单词错误:
  8. Android Studio Check for Updates检测发现不到新版本

随机推荐

  1. Android基础之通过 Intent 传递类对象
  2. android view setTag()和findViewWithTag
  3. Android 读取元素的数据
  4. android adb 命令常用总结
  5. Android数据存储之sharedpreferences与Co
  6. Android(安卓)FFmpeg系列——3 C多线程使
  7. Android读取本地或者网络图片的方法
  8. Android学习笔记之一 Activity的生命周期
  9. 你确定已经掌握了adb的使用?
  10. Flutter的一些冷门操作