Android CoroutineScope Dispatchers.Main主线程delay,kotlin

这篇具有很好参考价值的文章主要介绍了Android CoroutineScope Dispatchers.Main主线程delay,kotlin。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android CoroutineScope Dispatchers.Main主线程delay,kotlin

 文章来源地址https://www.toymoban.com/news/detail-571224.html

Android CoroutineScope Dispatchers.Main主线程delay,kotlin,Android ,kotlin,协程,android,kotlin,协程

 

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.view.View.OnClickListener
import android.widget.Button
import android.widget.Toast
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
    companion object {
        var TAG = "fly"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //点击按钮正常弹出Toast
        findViewById<Button>(R.id.button).setOnClickListener(object : OnClickListener {
            override fun onClick(v: View?) {
                Toast.makeText(
                    applicationContext,
                    TAG + " @${Thread.currentThread().id}",
                    Toast.LENGTH_SHORT
                ).show()
            }
        })

        Log.d(TAG, "1 @${Thread.currentThread().id}")
        CoroutineScope(Dispatchers.Main).launch {
            delay(20_000)
            var id = Thread.currentThread().id
            Log.d(TAG, "launch @$id")
        }
        Log.d(TAG, "2 @${Thread.currentThread().id}")
    }
}

 

 

 

kotlin协程coroutineScope_zhangphil的博客-CSDN博客coroutineScope 创建独立协程作用域,直到所有启动的协程都完成后才结束自己。runBlocking 和 coroutineScope 很像,它们都需要等待内部所有相同作用域的协程结束后才会结束自己。两者主要区别是: runBlocking 阻塞当前线程,而 coroutineScope不会,coroutineScope会挂起并释放底层线程供其它协程使用。kotlin协程coroutineScope。https://blog.csdn.net/zhangphil/article/details/129265638

 

到了这里,关于Android CoroutineScope Dispatchers.Main主线程delay,kotlin的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flutter问题记录】Android Studio不显示(右上角main.dart左边)设备栏

    记录一下今天遇到的情况: 用android studio打开项目,我检查了,已经配置了flutter sdk和android sdk,但是右上角main.dart左边的设备栏就是不显示。 解决方法: 恢复如初:

    2024年02月16日
    浏览(50)
  • 记坑:flutter doctor --android-licenses 【报错】Exception in thread “main“ Android sdkmanager tool was foun

    配置flutter时,在Flutter console终端界面,因为SDK版本问题,一直报错,据网友说要安装JDK 8, 之后又是安装JDK 8, 又是修改环境变量,折腾好半天。因为在网上没看到相应的报错,记录一下 flutter doctor --android-licenses一直有错误,错误如下:    在报错信息的末尾,我看到有 \\\"And

    2024年02月11日
    浏览(42)
  • OTA编译报Exception in thread “main“ java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk

            预置条件:已编译出2个版本的target包;         问题引入:项目需要本地验证当前项目是否可以编译出OTA差分包和全量包,并通过差分包和全量包成功完成测试机系统版本升级(这里重点讨论编译差分包过程中遇到的问题)         问题描述:使用ota脚本编译OTA报错

    2024年02月12日
    浏览(38)
  • Android Studio开发遇到爆红`@layout/activity_main` does not contain a declaration with id `xxx`

    翻译是“@layout/activity_main“不包含 ID 为”xxx“的声明”,但是我们用ctri + 鼠标左键可以跳转到所属位置,但是运行时会无法进入,或者爆红 用人话说你在MainActivity中调用的activiy_main.xml没有这个aid组件 这时候我们就要用到View提供的inflate的方法 这是我的一个item 案例 tv_del =

    2024年02月02日
    浏览(32)
  • Android系统-线程-java线程

    Android的框架应用是java环境的。java天生就是多线程。所以对java线程的理解尤为重要。 NEW 初始状态 RUNNABLE 运行状态 BLOCKED 阻塞状态 WAITING 等待状态 TIME_WAITING 超时等待状态 TERMINATED 终止状态 注意:调用obj.wait()的线程需要先获取obj的monitor,wait()会释放obj的monitor并进入等待态。

    2024年02月11日
    浏览(35)
  • 对set_input_delay和set_output_delay的理解

    前言 在FPGA设计中,端口约束分为两种,一种是管脚约束,及时把顶层模块的端口 port 与板卡上的物理引脚进行映射。另一种就是IO端口延时约束,目的是告诉时序分析工具信号在器件之外的延时,让它能够在一个完整的路径上进行分析,此外还要注意端口延时约束并不具有让

    2024年02月16日
    浏览(45)
  • 时序约束——set_max_delay和set_min_delay用法

    set_max_delay:最大延迟约束 set_min_delay:最小延迟约束 约束原语: set_max_delay [-datapath_only] [-from node_list] [-to node_list] [-through node_list] set_min_delay [-from node_list] [-to node_list] [-through node_list] 一般在约束异步信号时可以使用。针对跨时钟域的异步信号,常使用set_false_path或者set_clock

    2023年04月08日
    浏览(38)
  • (FPGA时序约束)set_max_delay/set_min_delay详解

           属于 时序例外 的一种。(时序例外是:某条路径在默认参数下没有被正确地分析时序,在这种情况下,需要告知时序分析工具这条路径是一个例外,需要按照我地特殊指示来执行这条路径地时序分析。举例:一个数据被一个寄存器同步采样,但不是每个时钟沿都采,

    2024年04月26日
    浏览(33)
  • UE4\UE5 蓝图节点Delay与Retriggerable Delay的使用与区别

    常用的节点之:Delay、Retriggerable Delay    这两个节点的用法相当于SetTimeOut方法,延迟多少秒执行操作,唯一的区别就是: Delay:指定一个延时的时间进行一次操作,倒计时过程中再次调用无效(时间不会被重置) Retriggerable Delay:可重新触发延时时间进行一次操作,倒计时过

    2024年02月13日
    浏览(56)
  • Android 中的 线程池

    1、corePoolSize 用于指定线程池的核心线程数大小; 2、maximumPoolSize 用于指定最大线程池大小。 3、keepAliveTime,unit 一起用于指定线程池中空闲线程的最大存活时间。 4、workQueue 任务队列,相当于生产者 - 消费者模式中的传输管道,用于存放待处理的任务。 5、threadFactory 用于指

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包