小编Ioa*_*s I的帖子

Anko doAsyncResult 协程

我是 anko 和协程的新手,所以请原谅我,如果我问一些琐碎的事情:)

所以我想要做的是让用户点击一个按钮,然后我想从互联网上下载一个 JSON,将它存储在本地并解析它。由于这两个操作都需要相当长的时间,我想使用 anko 协程。

所以第一个问题是:

1. 我可以使用嵌套的 doAsync 调用,在第一个的 UIThread 中调用第二个 doAsync 吗?我试过了,它似乎有效,但感觉不对,所以我试图找到一种更优雅的方式

例子:

doAsync {
            downloadFileFromUrl(fileUrl)

            uiThread {
                doAsync {
                    IOUtils.parseFile(context!!)
                    val database = AppDatabase.getInstance(context!!)
                    val results = database.resultsDao().all

                    uiThread {
                        //show Results
                    }
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

2. 在为我的问题寻找解决方案时,我发现了 doAsyncResult。如果 1 不正确,这是正确的方法吗?我已经尝试过使用它,但是使用 Boolean 我得到错误。见下文:

    private fun downloadFileFromUrl(fileUrl: String): Boolean {

        try{
        //Download file. No doAsync calls here.
        //The procedure just returns true if successful or false in case of any errors

            return true
        } catch (e: …
Run Code Online (Sandbox Code Playgroud)

android kotlin anko

5
推荐指数
1
解决办法
1340
查看次数

标签 统计

android ×1

anko ×1

kotlin ×1