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

完美解决~!

相关推荐
從南走到北39 分钟前
JAVA国际版二手车交易二手车市场系统源码支持Android+IOS+H5+APP
android·java·ios
江上清风山间明月1 小时前
Android 系统中进程和线程的区别
android·python·线程·进程
2501_940094022 小时前
mig烧录卡资源 Mig-Switch游戏合集 烧录卡 1.75T
android·游戏·安卓·switch
渡我白衣2 小时前
深入理解 OverlayFS:用分层的方式重新组织 Linux 文件系统
android·java·linux·运维·服务器·开发语言·人工智能
2501_915106322 小时前
iOS性能调优的系统化实践,从架构分层到多工具协同的全流程优化指南(开发者深度版)
android·ios·小程序·架构·uni-app·iphone·webview
stevenzqzq3 小时前
android recyclerview缓存_缓存问题解决办法
android·java·缓存
下位子3 小时前
『OpenGL学习滤镜相机』- Day10: 相机预览与 OpenGL 结合
android·opengl
那就逆流而上吧4 小时前
Android AIDL 的详细讲解和实践指南
android
TDengine (老段)5 小时前
TDengine 字符串函数 POSITION 用户手册
android·java·大数据·数据库·物联网·时序数据库·tdengine
2501_937154936 小时前
神马影视 8.8 源码 2025 版,HDR + 杜比音效 + 零卡顿
android·源码·源代码管理·机顶盒