android - 仅在重新启动 Android 设备后才写入文件
问题描述
我正在一个需要编写.xml
文件的应用程序中工作。现在文件只有在重新启动后才会被填充Android device
,我不明白为什么。这是我的代码:
override fun doInBackground(vararg params: Void?): Boolean {
val sagaCollectFolder = File(Environment.getExternalStorageDirectory(), ".sagacollect")
if (!sagaCollectFolder.exists())
sagaCollectFolder.mkdir()
try {
val file = File(
sagaCollectFolder,
"collect.xml"
)
file.createNewFile()
val factory: DocumentBuilderFactory = DocumentBuilderFactory.newInstance()
val builder: DocumentBuilder = factory.newDocumentBuilder()
val doc: Document = builder.parse(InputSource(StringReader(JRPresenter.getFilledFormXml().toString())))
// Write the parsed document to an xml file
val transformerFactory: TransformerFactory = TransformerFactory.newInstance()
val transformer: Transformer = transformerFactory.newTransformer()
val source = DOMSource(doc)
val result = StreamResult(file)
transformer.transform(source, result)
} catch (exception: Exception) {
Log.e(TAG, exception.toString())
}
return true
}
这是我执行的地方AsyncTask
:
fun saveResult(index: FormIndex, answer: IAnswerData?) {
formController.saveAnswer(index, answer)
WriteCacheAsync().execute()
}
任何人都知道我应该在调用方法后而不是在重新启动设备后更改什么来填充文件?
干杯,
毛里西奥
解决方案
@blackapps 解决了我的问题:
错误的方法。因为 Windows 依赖于 Android 设备的媒体存储,并且您没有通知媒体存储有关新文件的信息。事实上,媒体存储扫描仪会在重新启动后找到您的文件。请改用设备上的文件管理器应用程序。或者用代码检查自己
使用文件管理器,我发现一切正常。非常感谢大家。
推荐阅读
- python - 递归数独解谜程序错误
- java - 是否可以使用 Spring jpa 在联合继承中创建 2 个孩子?
- mongodb - MongoDB 在子文档中查找
- eclipse - 如何修复从 luaJ 获得的“启动层初始化期间发生错误”
- matlab - Matlab 给我警告:可能是虚假的解决方案
- python - 如何从仅在滚动后才显示响应的网站上一次抓取所有数据?
- javascript - 将没有加密的数据发送到 Twilio getToken 函数
- html - 如何更改选项卡图标?
- node.js - 如何使用反应将输入输入到结构化数组(嵌套),数组大小将动态决定
- javascript - Woocommerce:Ajax 添加到购物车在 WP Bakery 页面构建器中不起作用