Uso de monitoreo de archivos o directorios de Android y explicación detallada de los principios subyacentes (FileObserver)

Explicación detallada de la supervisión de archivos (directorios) de Android (FileObserver)


Si queremos monitorear las operaciones de apertura, creación, movimiento y eliminación de archivos y carpetas en la tarjeta SD, ¿cómo lograrlo?

Hoy aprenderemos sobre la implementación y el principio del monitoreo de archivos.

La API del sistema Android proporciona la clase abstracta FileObserver (mecanismo INotify de Linux) para monitorear archivos o carpetas en el sistema/tarjeta SD. Se puede implementar para monitorear archivos (usando inotify) y desencadenar eventos después de que cualquier proceso en el dispositivo acceda a los archivos o los modifique (incluido este artículo).

Introducción a FileObserver

Android encapsula directamente inotify en la clase FileObserver, que se puede usar directamente en código Java. Por supuesto, también es muy fácil llamar a inotify en jni.

FileObserver es una clase abstracta y las subclases deben implementar el controlador de eventos onEvent(int, String).

FileObserver puede escuchar dos tipos de archivos: uno es un solo archivo y el otro es un directorio de archivos. Si se supervisa un directorio, se activan eventos para todos los archivos y subdirectorios dentro del directorio supervisado.

Advertencia: si FileObserver se recolecta como basura, dejará de enviar eventos. Por lo tanto, para garantizar que continúe recibiendo eventos, debemos mantener una referencia a la instancia de FileObserver de algún otro objeto en vivo.

Tipos de eventos escuchables

Según el documento oficial, existen los siguientes eventos, correspondientes a diferentes constantes de eventos:
[Error en la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img- qpBWmytL-167896

Supongo que te gusta

Origin blog.csdn.net/u011578734/article/details/129595700
Recomendado
Clasificación