android - 在 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
方法。
我做错了什么?
解决方案
推荐阅读
- javascript - 查找具有相同 prop 的对象并返回更新值及其关联的 prop
- php - Lumen 8.x 文件系统不工作。错误:未找到“League\Flysystem\AwsS3v3\AwsS3Adapter”类
- mysql - 如何使用 mysql 函数从 sting 中获取 id?
- c++ - 在 C++ 中,从大型文本文件集合中读取所有单词的最快方法是什么?
- javascript - react-bootstrap/Image 不加载 imgURL
- botframework - Azure 上 OAuth 连接设置中的 Microsoft 示例 52 和 AAD ConnectionName
- android - 取消配对蓝牙设备无法在 Redmi 手机中使用,使用“removeBond”此方法在所有其他设备中均有效
- python - “execute_script”如何在 Selenium 中工作?是否直接在页面中注入代码?
- ios - 防止在 ios 小部件单击时打开默认应用程序
- elixir - 从列表中删除重复的合作伙伴值