【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()
                }

完美解决~!

相关推荐
游戏开发爱好者87 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码20357 小时前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥7 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓8 小时前
[JDBC]元数据
android
独行soc8 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
金融RPA机器人丨实在智能8 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿8 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc9 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
王码码20359 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_915106329 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview