可能我撞了南墙也学不会kotlin协程吧

COCOS 3.8 接入高德定位SDK /微信登录所必须的code。//是否获得code。 阅读详情

在这里插入图片描述

哈哈哈哈哈哈哈哈哈哈~
很早就开始学Kotlin了,项目中也渐渐使用,项目从最初的某个方法某个类写起,直到2022年的7月,决定中小型项目尽量全面使用Kotlin开发,直至目前,开发的项目90%都是Kotlin,还是处于Kotlin+Java混搭,笑死~
搞笑的是,每次写协程,写着写着就忘了,然后,打开百度,一边学一边写,所以,为了减少每次搜索的工作,决定在这篇文章总结平常开发使用的代码片段,方便搬砖(复制+粘贴)。
1、快速使用CoroutineScope + launch{}

        CoroutineScope(Dispatchers.Main).launch {
            delay(1000L)//阻塞时间
        }

2、循环子线程
方法一

private var hd = Handler()
    private var rb: Runnable = object : Runnable {
        override fun run() {
            hd.postDelayed(this, 3000)
            pool.playByRes(R.raw.closed_barn_door)
        }
    }
启用
hd.postDelayed(rb,100)
停用
hd.removeCallbacks(rb)

方法二、在viewmodel中写

fun runForever() {
    // start a new coroutine in the ViewModel
    viewModelScope.launch {
        // cancelled when the ViewModel is cleared
        while(true) {
            delay(1_000)
            // do something every second
        }
    }
}

3、更新UI


withContext(Dispatchers.Main) {
    Toast.makeText(this@MainActivity, "发送成功.", Toast.LENGTH_LONG).show()
}

或
thread{
   //编写具体的逻辑 
   Thread.sleep(1000)
}

获取类名

private val TAG = MainActivity::class.java.name

4、接口回调

getInstance().init(this@MainActivity, object: XXX.XCallback{
            override fun doCallback(id: String?, name: String?, data: String?) {
                Log.e(TAG, "doCallback: ")
            }
        })

5、常见的 CoroutineScope 协程作用域 :

GlobalScope : 该作用域是 进程级别的 , 与应用进程同级 , 即使 Activity 被销毁 , 协程任务也可以继续执行 ;
MainScope : 该 作用域仅在 Activty 中 , 如果 Activity 被销毁 , 则 在 onDestory 生命周期函数中取消协程任务 ;
viewModelScope : 该作用与仅在 ViewModel 中使用 , 与 ViewModel 生命周期绑定 ;
lifecycleScope : 该作用与仅在 Activity 中使用 , 与 Activity 生命周期绑定 ;
————————————————

Kotlin 官方文档 中文版

MySQL 优化 - index_merge 导致查询偶发变慢 今天遇到了一个有意思的问题,线上数据库 CPU 出现了偶发的抖动。定位到原因是一条查询语句偶发变慢造成的,随后通过调整表中的索引解决。优化器通过某种机制检测到 index_merge 能带来性能提升,某些情况下不会带来提升,反而会耗费更长的时间,属于优化器的缺陷,可以通过调整表中的索引来解决。 阅读详情

相关推荐

GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程

本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。

yhn456789的博客 763

不会用kotlin?这篇看完不懂,我跪搓衣板

最近用kotlin重写了项目中的部分模块,领略到了这个Google官方推荐语言的魅力。 正文 对比Java语言Kotlin有很多优点,如:空指针安全、支持方法扩展、lamda表达式、高阶函数、函数式编程、kotlin协程(用同步的方式写异步代码)等等。Kotlin可以100%等价替换Java代码,Android Studio 提供了一键把Java...

weixin_33985679的博客 402

U8采购入库单CO接口开发实战:加载、新增与删除操作详解

本文详细解析了用友U8采购入库单CO接口的开发实战,重点介绍了加载、新增与删除三大核心操作的实现方法。通过C#代码示例和实际项目经验,帮助开发者高效处理采购入库单,提升企业供应链管理效率。文章还涵盖了环境配置、异常处理、性能优化等关键技巧,适合U8二次开发人员参考。

weixin_33462927的博客 373

不知道如何入门Kotlin?《Kotlin 入门教程指南》带你从入门,带你飞

前言 如果你是一名 Android 开发者,那掌握 Kotlin 语言对你来说就非常重要了。 Google 宣布将 Kotlin 作为 Android 开发的官方编程语言后,Kotlin 开发者社区一直在快速增长。对于Android 应用开发者来说,仅仅掌握 Java 语言是不够的, 还应该学习 Kotlin 语言,才能追上技术发展趋势,在工作中更加游刃有余。 Kotlin 作为 Android 开发的新选择,具有简洁、安全、函数式编程等特点,在实际开发中使用起来非常方便。在使用 Kotlin 的专业 A.

qq_44102588的博客 3109

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 984

Fastjson2 2.0.26反序列化漏洞深度剖析:从原理到PoC构造

本文深度剖析了Fastjson2在2.0.26及之前版本中存在的反序列化漏洞。该漏洞允许攻击者通过构造包含恶意TemplatesImpl对象的JSONArray,并利用BadAttributeValueExpException触发,在反序列化过程中实现远程代码执行。文章从漏洞原理、PoC构造、利用链分析到防御建议,提供了全面的技术解读,帮助开发者和安全人员理解其危害并采取应对措施。

d3e4f的博客 1050

不会真的学不会kotlin吧?(五)类型进阶

本文是根据慕课网kotlin相关课程本人笔记和个人理解所作,属于半原创 文章目录本章简介结构导图类的构造器成员可见性类属性的初始化代理 Delegates单例data class数据类内部类枚举类密封类内联类EG 本章简介 这一章主要就是要注意java类和kotlin类的区别一些的,看看知道怎么用就可以了 结构导图 类的构造器 java public class Person { private int age; private String name; public Per.

木寸~ 6098

光学相干断层扫描(OCT)在 妇科诊断 中的革命性应用

尽管OCT在妇科的应用提供了许多潜在的优势,但它仍然是一个相对新的技术,并不是所有医疗机构都有能力提供这种类型的成像服务。随着技术的发展和医生对OCT的熟悉程度的提高,预计OCT将在妇科和其他医学领域中扮演越来越重要的角色。早期发现和准确的分类是提高治疗成功率的关键。虽然这是一个相对较新的应用领域,但OCT的非侵入性和高分辨率成像能力可能提供有价值的信息,以提高辅助生殖技术的成功率。:光学相干断层扫描(OCT)在阴道和外阴组织的评估中的应用正在逐渐展开,提供了一种新的方法来诊断和监测各种妇科疾病。

LiRongLu_的博客 1720

别再用“命令”指挥 UI 了:撕掉 XML,开启 Android 声明式开发的“第二曲线”

本文探讨了Android开发从传统命令式UI(XML+View)向声明式UI(Jetpack Compose)的范式转变。通过对比"点赞按钮"的两种实现方式,揭示Compose的核心优势:开发者只需声明UI与状态的映射关系,无需手动操作视图对象。文章重点分析了Compose的智能重组机制如何确保UI与状态同步,并建议开发者转变思维,放弃对UI元素的直接控制,转而专注于状态管理。这种声明式开发模式能有效解决传统开发中常见的UI状态不一致问题,为Android开发开启了更简洁高效的新路径。

felix的博客 937

二十一、SAP-库存管理

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1808

Vue3 - 手机移动端H5网页强力解决弹起软键盘后页面被挤压变形或页面整体上移问题,点击input输入框键盘弹出底部被上推往上顶遮挡及各种问题(兼容安卓苹果ios手机,微信公众号网页微信内置浏览器)

vue3,h5网页,input输入框组件,vue3 h5软键盘弹出,vue3输入框,键盘弹起时页面整体上移问题,uni,H5页面,解决软键盘弹起页面被挤压、被往顶的问题,解决vue3输入框,键盘弹起时页面整体上移问题,vue3调用手机系统软键盘,页面窗口被顶起,布局定位失效,解决VUE3软键盘弹起导致页面fixed定位元素被顶上去,输入法软键盘弹起,窗口顶起,变形解决办法,Vue中input组件在IOS设备上弹出软键盘时页面整体上移问题的解决方案,以及input组件聚焦后弹出软键盘固定在,Vue3软键盘把界

🏆 前端领域优质创作者 1万+

吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3

http://mobile.51cto.com/iphone-392479.htm 转载于:https://www.cnblogs.com/meihao1989/p/3709213.html

diaoyo2388的博客 149

MuJoCo 入门教程(八)Model仓库

一个物理仿真器的好坏取决于它所仿真的模型,而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中,很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用的模型集。更多信息,请访问 Menagerie 资源库。

机器人控制与仿真应用 1939

给Agent写测试-工具调用的回归怎么保

本文提出“测行为不测文字”的三层测试防线,解决 Agent 工具调用回归难题:第一层工具单测(纯函数);第二层循环集成测,通过 mock 模型断言工具调用、参数与回填的正确性;第三层评测集,固定问答对对比行为快照。代码演示了最小可运行测试,强调断言行为而非模型输出,确保提示词改动可安全合并。

D_ENG_F的博客 199

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Kotlin——Shared mutable state and concurrency

当使用多个协程操作变量,且未进行同步时,并不能得到正确的值。

松仔Log的博客 333

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Kotlin中级——Coroutine exceptions handling

当协程用作根协程时。

松仔Log的博客 219

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android 开发入门实践(二):Kotlin 空安全,从可空类型到安全访问

延续 NewsApp 项目中的新闻标题练习,记录 Kotlin 安全调用。

Easyhood的博客 273

KMP学习day5--Kotlin Flow异步流基础

在上一节协程入门里,我们用一次性返回了一个结果。但真实开发中大量数据不是"一个值",而是"一段时间内陆续到来的一串值":传感器每秒上报一次读数、聊天室不断收到新消息、股票行情持续推送。用挂起函数只能反复调用、自己攒列表,写起来笨拙还容易出错。Kotlin 官方为这种场景给出的标准答案就是——协程世界里的异步数据流。本文把 Flow 的核心概念、常用操作符,以及它和的边界一次讲清楚。

qq_63223749的博客 828

Android 开发入门实践(五):从 Kotlin 类与对象到新闻数据模型

本文记录了在NewsApp项目中学习Kotlin类与对象的全过程:从声明空类、创建对象,到添加属性、使用构造函数与默认参数,最终通过data class和copy()实现新闻数据模型的构建。重点区分了类与对象、参数与属性的概念,掌握了修改原对象与复制新对象的区别,并将新闻列表接入Jetpack Compose显示标题,深化了对数据封装与可变性的理解。

Easyhood的博客 213

Kotlin中级——Select expression

select的onReceive允许从2个channel中获取值。

松仔Log的博客 248

Gson + Kotlin 数据类的空安全陷阱:一次线上 NPE 崩溃的完整分析与修复

服务端返回 {"provinceName": null, ...}│▼Gson 反射赋值,绕过主构造函数和空检查│▼data.provinceName 实际是 null(但类型仍标记为非空 String)│▼主线程 lambda 拿着这个"假的非空值"传给非空参数│▼Intrinsics.checkNotNullParameter 抛出 NPE,主线程崩溃项目内容崩溃现象根本原因Gson 反射赋值绕过 Kotlin 构造函数与空检查,服务端返回显式null。

学习的最佳方式,就是把它写下来! 177

Kotlin与Java虚拟机四:函数

Kotlin 中函数是“一等公民”,使用 fun 声明,支持表达式函数体、默认参数、命名参数和可变参数(vararg)。函数可位于顶层(编译为静态方法)、局部或类中。无返回值时类型为 Unit,尾递归优化可避免栈溢出。本章还介绍了函数的灵活性与可读性提升特性,为后续高阶函数打下基础。

canfeit的专栏 167

Kotlin与Java虚拟机三:控制流

Kotlin 控制流以表达式为核心,if 和 when 均可返回值,取代了 Java 的语句形式。when 功能强大,支持多值、区间、类型判断及穷尽性检查,提升安全性。区间与 for 循环结合,简洁遍历集合;break/continue 可配合标签跳出嵌套循环。Lambda 中的 return 默认非局部返回,需用 return@标签 控制行为。整体设计更安全、简洁。

canfeit的专栏 334

Kotlin flow 详解

/ 接收launch {// 发送launch {可以看到创建SharedFlow时,没有像创建冷流flow一样传入一个block的函数参数。自然调用collect也没有可以重新运行的代码。

weixin_45444971的博客 215

Android 开发入门实践(四):Kotlin 列表的安全读取、增删改与筛选转换

本章学习Kotlin列表操作,重点掌握getOrNull安全取值、isEmpty/isNotEmpty判断空列表、MutableList可变性及add、remove、removeAt、替换元素等操作。通过日志验证,区分原列表修改与新列表创建,明确filter、map、find等函数返回类型与作用。强调下标越界处理、重复元素删除逻辑及val与可变性的关系,巩固列表操作的准确理解。

Easyhood的博客 156

Android 开发入门实践(三):理解 Kotlin 列表下标、size 与 lastIndex

Log . d(TAG , "最后一条新闻的下标: $ lastNewsIndex ")lastIndex的 I 大写,后面同样不加圆括号。变量名中的 N、I 都大写。它返回的是一个下标,不是最后一条新闻的文字,也不是新闻总数。表达式表示什么结果元素数量10最后一个下标9下标9对应的元素本文示例中是"第十条新闻"表格最后一行根据本文复习数据得出;前两行的10和9也与当时两节课的运行反馈一致。

Easyhood的博客 219
上一篇: Android实现WebServer(服务端)之Java-WebSocket
下一篇: 完美解决None of the following candidates is applicable because of receiver type mismatch:
小红妹
博客等级 码龄10年 151粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值