首页 > 解决方案 > 在 Android 中观察文件

问题描述

我尝试在 Android 中观察一个 Json 文件,但它不起作用。我的文件位于下载目录中。

在我的活动中,我观察我的文件是这样的:

val jsonConfig = JsonConfigFileObserver(File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), FILE_NAME_CONF).absolutePath) { jsonConfig ->
            runActionFromConfig(jsonConfig)
        }
jsonConfig.startWatching()

这是我的JsonConfigFileObserver类:

class JsonConfigFileObserver(private var path: String, var onModify: (JsonConfig) -> Unit) : FileObserver(path, MODIFY) {
    override fun onEvent(event: Int, pathNullable: String?) {
            Log.d("FileObserver: ", "File Modified")
            onModify(jsonConfig(path))
    }
}

所以我使用 adb 推送我的配置文件的新版本:

adb push myConfigFile.json ./storage/emulated/0/Download/myConfigFile.json

该文件已更新,但我从未输入该onEvent方法。

我做错了什么?

标签: androidkotlin

解决方案


推荐阅读