Файл записывается только после перезапуска устройства Android - PullRequest
3 голосов
/ 15 января 2020

Я работаю в приложении, которому нужно написать файл .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 Ответ

1 голос
/ 15 января 2020

@ blackapps решил мою проблему:

Неправильный метод. Потому что Windows зависит от хранилища мультимедиа устройства Android, и вы не сообщили хранилищу мультимедиа о новом файле. Действительно, сканер медиа-магазина найдет ваш файл после перезагрузки. Вместо этого используйте приложение файлового менеджера на устройстве. Или проверьте себя с помощью кода

С помощью файлового менеджера я увидел, что все работает нормально. Спасибо всем большое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...