Android FileObserver übergibt undokumentiertes Ereignis 32768

9

Ich verwende FileObserver , um ein Verzeichnis nach Änderungen zu beobachten. Der Prozess funktioniert in 90% der Fälle gut, aber gelegentlich schlägt er fehl.

Hier ist ein funktionierendes Beispiel für logcat:

%Vor%

Hier ist ein fehlgeschlagenes Beispiel:

%Vor%

Sobald ich das 32768-Ereignis mit einer Null-Datei bekomme, hört alles auf. Ich habe die Quelle für FileObserver überprüft und nach inotify 32768 gesucht und kann nirgendwo finden, wo auf diese verwiesen wird.

Der Code zum Einrichten des Beobachters lautet wie folgt:

%Vor%

Der Code für das Logcat lautet:

%Vor%

Irgendeine Idee, was 32768 und Null-Datei bedeutet?

    
mvsjes2 24.04.2012, 19:51
quelle

3 Antworten

6

Danke an diese Antwort .

Die Ereigniscodes sind hier aufgelistet.

32768 ist insbesondere das:

#define IN_IGNORED 0x00008000 / * Datei wurde ignoriert * /

    
dokkaebi 17.01.2013 20:04
quelle
1

Ich litt auch an gelegentlichen Fehlern.

Ich habe eine große Sache mit dem Android FileObserver entdeckt: Sie dürfen nicht zwei FileObserver haben, die denselben Ordner in Ihrer Anwendung beobachten.

Wenn Sie StopWatching auf einem FileObserver aufrufen, hört auch jeder andere FileObserver auf, der den gleichen Ordner beobachtet.

    
Andrew Shepherd 02.12.2014 03:46
quelle
1

Ich hatte das Problem, dass mein FileObserver das Ereignis 32768 bekommt und nicht mehr funktioniert. Ich versuchte verzweifelt zu verstehen, wie ich dies (ohne den FileObserver neu zu erstellen) für ein paar Tage beheben konnte.

Zuerst habe ich festgestellt, dass dieses Ereignis (32768) durch die Garbage Collection ausgelöst werden kann (wenn ich es durch DDMS erzwinge), obwohl ich einen harten Verweis auf meinen FileObserver habe.

Irgendwann habe ich festgestellt, dass sich ein anderer FileObserver in meinem Programm im selben Ordner befindet. Sobald ich es gelöscht habe, hat alles angefangen zu arbeiten.

Weiß jemand, ob es legal ist, mehrere Beobachter im selben Verzeichnis zu haben? Ich konnte keine Informationen darüber finden.

    
Evgeny 27.03.2015 08:42
quelle

Tags und Links