L'utilisation et le bref principe d'Android FileObserver

FileObserver est une classe Android qui surveille les modifications d'un fichier ou d'un répertoire spécifié. Il peut aider les développeurs à détecter la création , la suppression , le renommage , la modification et d'autres opérations de fichiers ou de répertoires en temps réel. En utilisant FileObserver, les développeurs peuvent répondre à ces modifications du système de fichiers en temps opportun et effectuer des opérations spécifiques lorsque des événements correspondants se produisent.


Utilisation de FileObserver :

class MainActivity : AppCompatActivity() {

    var fileObserver: FileObserver? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val path = "/sdcard/xxxx/xxxx" // 监视的文件或目录路径

        fileObserver = object : FileObserver(path) {
            override fun onEvent(event: Int, path: String?) {
                when (event) {
                    CREATE -> {}       // 文件或目录创建
                    DELETE -> {}       // 文件或目录删除
                    DELETE_SELF -> {}  // 自身删除
                    MODIFY -> {}       // 文件或目录修改
                    MOVED_FROM -> {}   // 移动或重命名
                    MOVED_TO -> {}     // 移动或重命名后
                    ATTRIB -> {}       // 文件或目录属性变化
                }
            }
        }
        fileObserver?.startWatching()
    }

    override fun onDestroy() {
        super.onDestroy()
        fileObserver?.stopWatching()
    }

}

Remarque : Vous devez vous assurer que le chemin du fichier surveillé dispose des autorisations de lecture et d'écriture avant que le programme puisse s'exécuter normalement.


FileObserver interagit avec le code C/C++ via JNI (Java Native Interface) au niveau de la couche inférieure et appelle l' interface inotify du système . Lorsque l'instance FileObserver démarre, elle crée une instance inotify sous-jacente et demande au noyau de surveiller le fichier ou le répertoire spécifié .

Lorsque le fichier ou le répertoire surveillé change, le noyau génère un événement correspondant et transmet les informations sur l'événement au FileObserver. FileObserver capturera ces événements et déclenchera les méthodes de rappel correspondantes, telles que onEvent().


Il convient de noter que l'implémentation sous-jacente de FileObserver utilise des fonctionnalités spécifiques à Linux, elle ne peut donc être utilisée que sur Android , pas sur d'autres systèmes d'exploitation ou plates-formes.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_47592544/article/details/132627060
conseillé
Classement