仅在重新启动Android设备后才写入文件

时间:2020-01-15 10:36:26

标签: android kotlin

我正在一个需要编写.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()
}

任何人都知道在调用方法之后而不是在重新启动设备后为了填充文件应该做什么?

干杯

毛里西奥

1 个答案:

答案 0 :(得分:1)

@blackapps解决了我的问题:

方法错误。因为Windows取决于Android设备的媒体存储,并且您没有将新文件通知媒体存储。实际上,媒体存储扫描程序将在重新启动后找到您的文件。请改用设备上的文件管理器应用。或使用代码检查自己

使用文件管理器,我已经看到一切正常。非常感谢你们。