下面列出了android.os.FileObserver#stopWatching ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
void onUserRemoved(int userHandle) {
synchronized (this) {
// the db file itself will be deleted automatically, but we need to tear down
// our caches and other internal bookkeeping.
FileObserver observer = sObserverInstances.get(userHandle);
if (observer != null) {
observer.stopWatching();
sObserverInstances.delete(userHandle);
}
mOpenHelpers.delete(userHandle);
sSystemCaches.delete(userHandle);
sSecureCaches.delete(userHandle);
sKnownMutationsInFlight.delete(userHandle);
onProfilesChanged();
}
}
public void stopObservers() {
synchronized (observers) {
for (final FileObserver o : observers.values()) {
o.stopWatching();
}
observers.clear();
}
}
public void stop() {
for (FileObserver o : observers) {
o.stopWatching();
}
observers.clear();
}
private synchronized void stopWatchingInternal() {
for (FileObserver observer : mObservers) {
observer.stopWatching();
}
mObservers.clear();
}
private synchronized void stopWatchingInternal() {
for(FileObserver observer : mObservers) {
observer.stopWatching();
}
mObservers.clear();
}
void scanDir(final File dir) {
// Checks if scan should be continued
if (!inScan.get()) {
return;
}
if (dir == null || !dir.isDirectory()) {
return;
}
if (dir.getAbsolutePath().startsWith("/sys")) {
LCTX.d("Skip system dir: " + dir);
return;
}
try {
final File cd = CacheManager.getCacheDir();
if (cd != null && dir.getCanonicalPath().equals(cd.getCanonicalPath())) {
LCTX.d("Skip file cache: " + dir);
return;
}
} catch (final IOException ex) {
ex.printStackTrace();
}
if (LCTX.isDebugEnabled()) {
LCTX.d("Scan dir: " + dir);
}
// Retrieves file observer for scanning folder
final FileObserver observer = getObserver(dir);
// Stop watching
observer.stopWatching();
// Retrieves listener
final Listener l = listeners.getListener();
// Retrieves file list
final File[] files = dir.listFiles((FilenameFilter) filter);
// Sort file list
if (LengthUtils.isNotEmpty(files)) {
Arrays.sort(files, StringUtils.NFC);
}
// Call the file scan callback
l.onFileScan(dir, files);
// Retrieves files from current directory
final File[] childDirs = dir.listFiles(DirectoryFilter.ALL);
// Immediately starts folder watching
getObserver(dir).startWatching();
if (LengthUtils.isNotEmpty(childDirs)) {
// Sort child dir list
Arrays.sort(childDirs, StringUtils.NFC);
// Add children for deep ordered scanning
synchronized (this) {
for (int i = childDirs.length - 1; i >= 0; i--) {
this.paths.addFirst(childDirs[i]);
}
}
}
}