首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Anko doAsync调用未执行

Anko doAsync调用未执行
EN

Stack Overflow用户
提问于 2018-06-20 15:04:30
回答 1查看 1.8K关注 0票数 1

我正在Android中创建一个项目,并在am上使用Anko库在单独的线程上运行一个API请求。所述线程只是简单地进行HTTP调用和数据解析,而UI线程传递所述数据并启动下一个活动。

问题是,我的程序似乎从未进入doAsync块。我已经在下面发布了我为调用编写的函数的代码,它是在单击按钮时调用的,当单击该按钮时,什么都不会发生。它不会停滞,不会崩溃,什么都不会。活动的其他部分甚至会做出回应。

我尝试过的解决方案:

  • 调试进入块,只需跳过它。
  • 移除尝试/捕获
  • 对主线程执行调用和解析(抛出异常)
  • 将调用放在一个单独的函数中,就像现在一样(原来是在按钮侦听器中)

我在网上找不到任何关于这件事的信息,所以欢迎你帮忙,谢谢。

MainActivity.kt

代码语言:javascript
复制
    private
    fun asyncCall(n : Int) {
        doAsync {
            try {
                // Call API, store Place objects in placesList
                toast("streamJSON call")
                placesList = streamJSON()
            } catch (e: java.lang.RuntimeException) {
                // Error parsing JSON
                toast("Invalid Request")
            }

            uiThread {
                if(n == 1) { // Submit button
                    goToResults()
                }
                else if (n == 2) { // Feeling lucky button
                    feelingLuckyAlert()
                }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 15:43:43

代码跳入catch块,因为不能在没有调用Looper.prepare()的线程上使用Looper.prepare()。解决方案是在toast中调用uiThread

代码语言:javascript
复制
private fun asyncCall(n : Int) {
    doAsync {
        try {
            uiThread {
                toast("streamJSON call")
            }

            // Call API, store Place objects in placesList
            placesList = streamJSON()
        } catch (e: java.lang.RuntimeException) {
            uiThread {
                toast("Invalid Request")
            }
        }

        uiThread {
            if(n == 1) { // Submit button
                goToResults()
            } else if (n == 2) { // Feeling lucky button
                feelingLuckyAlert()
            }
        }
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50951385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档