Android监听SD卡文件变化
生活随笔
收集整理的這篇文章主要介紹了
Android监听SD卡文件变化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天再一次使用到FileObserver,上一次使用還是很久之前了。總結一下FileObserver里留的一些“坑”
1、FileObserver只能監聽一個目錄下的“一級”子文件,也就是說FileObserver不支持監測一個目錄下嵌套子目錄的文件; 2、關于FileObserver中的onEvent(int event, String path)函數。其中event在使用過程中發現總是一個很大的數,這與api中定義的1,2,4...512常量不相符。需要將event & FileObserver.ALL_EVENTS,才能得到sdk中定義的常量。究其原因,貌似event中的高位附帶了一些信息; 3、經過試驗發現如果監聽的目錄被刪除了,FileObserver就沒有作用了。即使后來再創建一個同樣的目錄。我要的效果是監聽一個目錄下的文件,如果這個文件被刪除了就重新生成一個該文件,在調試中發現第一次刪除整個目錄后能重新生成,但是之后再刪除就不起作用了(刪除單個文件應該沒有問題)。應該就是提到的這個原因。有一個解決方法就是通過handler方式,異步線程重新生成了文件后通知service,再重啟對該目錄的監測即可。 4、可以指定要針對文件的哪些操作動作進行監聽:比如 static final int mask = (FileObserver.CREATE |? FileObserver.DELETE |? FileObserver.DELETE_SELF | FileObserver.MODIFY | FileObserver.MOVED_FROM | FileObserver.MOVED_TO | FileObserver.MOVE_SELF);? public PathFileObserver(String root){ super(root, mask); ... ... }總結
以上是生活随笔為你收集整理的Android监听SD卡文件变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apple Swift编程语言入门教程
- 下一篇: Android SharedPrefe