2012-06-30 98 views
1

我有一個用作遞歸文件服務器的類。它所做的就是爲父目錄中的所有目錄創建一個文件觀察器,然後開始觀察它們。我知道它的工作原理,因爲在調試模式下,它會記錄logcat中的所有文件更改。但是,當我從調試器斷開連接並重新啓動應用程序時,它會生成啓動和設置日誌,但它不會捕獲任何文件更改。垃圾收集器是否有可能因爲調試器不在線而正在觀看?我不認爲這是真的,因爲運行它的Intentservice永遠不會死。File Observer在調試模式下工作,但事件不會在沒有調試器的情況下觸發

編輯:我將intentservice更改爲nonstopintentservice,同樣的事情仍在發生。所以服務不會被破壞。

您認爲如何?

感謝

回答

0

事實證明,即使調試器上市的意圖服務爲還活着,真不是和文件觀察員正在最後定稿。所以我寫了一個線程來欺騙垃圾回收器讓對象存在。

0

我已經嘗試過服務和另一個線程。但沒有人工作。我認爲問題是FileObserver被垃圾收集。

警告:如果FileObserver被垃圾收集,它將停止發送事件。爲了確保您不斷收到事件,你必須保持一些其他的活動對象

http://developer.android.com/reference/android/os/FileObserver.html

到FileObserver實例的引用
相關問題