【Android】kotlin - 异步方法里调用delay 延时器和toast的问题

需求

onCreate生命周期里, 调用一个异步方法, 网络请求访问成功的话, 首先弹出toast, 2.5秒后自动返回到上一页

遇到的问题

kotlin 复制代码
	override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 在 onCreate 中启动协程
        coroutineScope.launch {
            updateInfo()
        }
    }

    private suspend fun updateInfo() {
        try {
            // 模拟网络请求
            val response = apiService.getData()

            if (response) {
                // 这样写会报在主线程内需要写Loop.parse() 和 Loop.loop(), 直接白屏返回到上一页
                // 但是加了Loop后, delay后面不会再执行, 也就是提示完不会返回到上一页
                Toast.makeText(
                    this@UpdateInfoActivity,
                    "Submitted Successfully",
                     Toast.LENGTH_SHORT
                 ).show()
                // 延迟 3 秒后返回上一页
                delay(3000L)
                finish()
            } else {
                // 处理错误
            }
        } catch (e: Exception) {
            // 处理异常
        }
    }

解决办法

把toast放在runOnUiThread{}里面, dalay()放到外面

kotlin 复制代码
                if (retCode == "0") {
                    runOnUiThread {
                        Toast.makeText(
                            this@MyActivity,
                            "Submitted Successfully",
                            Toast.LENGTH_SHORT
                        ).show()
                    }
                    delay(2500L)
                    finish()
                }

完美解决~!

相关推荐
私人珍藏库11 小时前
【Android】聆听岛[特殊字符]聚合全网音乐[特殊字符]免费听歌下载神器[特殊字符] 聚合音乐平台|无损母带下载|歌词封面同步|免费无广告听歌工具
android·人工智能·工具·软件·多功能
YF021112 小时前
Android触摸机制与自定义 View 实战
android·app
Dabei12 小时前
Android TV 焦点处理详解:遥控器与空鼠
android·前端
悠哉清闲13 小时前
裁剪SurfaceView
android
常利兵13 小时前
Android字体字重设置全攻略:XML黑科技+Kotlin动态实现,告别.ttf臃肿
android·xml·科技
therese_1008614 小时前
安卓-IPC
android
沙粒014 小时前
Mac 使用 scrcpy 局域网无线投屏指南
android
过期动态14 小时前
MySQL中的约束
android·java·数据库·spring boot·mysql
装杯让你飞起来啊15 小时前
第 2 周 Day 5-6:综合小游戏 —— 学生成绩管理系统
windows·microsoft·kotlin
牛蛙点点申请出战16 小时前
IconFontViewer -- 一个可以在 Android Studio 中实时预览 IconFont 的插件
android·前端·intellij idea