android 关于使用协程的一些问题

问题1:能不能在GlobalScope.launch(Dispatchers.Main){} 做耗时事情

问题2: delay() 算不算耗时的

案例1:

复制代码
        findViewById<View>(R.id.btn1).setOnClickListener {
            GlobalScope.launch(Dispatchers.Main){
                 Thread.sleep(21000)
                 Toast.makeText(this@MainActivity,"sdfs",Toast.LENGTH_SHORT).show()
            }
        }

效果:直接ANR了

案例2:

复制代码
      findViewById<View>(R.id.btn1).setOnClickListener { 

            GlobalScope.launch(Dispatchers.Main){
                 delay(20000)
                Toast.makeText(this@MainActivity,"sdfs",Toast.LENGTH_SHORT).show()
            }
        }

效果:20秒以后显示了 Toast

相关推荐
雨白3 小时前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
诺诺Okami7 小时前
Android Framework-Launcher-UI和组件
android
潘潘潘8 小时前
Android线程间通信机制Handler介绍
android
潘潘潘8 小时前
Android动态链接库So的加载
android
潘潘潘9 小时前
Android多线程机制简介
android
CYRUS_STUDIO11 小时前
利用 Linux 信号机制(SIGTRAP)实现 Android 下的反调试
android·安全·逆向
CYRUS_STUDIO11 小时前
Android 反调试攻防实战:多重检测手段解析与内核级绕过方案
android·操作系统·逆向
黄林晴15 小时前
如何判断手机是否是纯血鸿蒙系统
android
火柴就是我15 小时前
flutter 之真手势冲突处理
android·flutter
法的空间15 小时前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios