首页
沸点
课程
更多
活动
APP
插件
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
后端
前端
Android
iOS
人工智能
开发工具
代码人生
阅读
kotlin协程中通过startCoroutineUninterceptedOrReturn()创建并启动协程
kotlin协程中通过startCoroutineUninterceptedOrReturn()创建并启动协程 也是3个版本,不过主要流程都差不多。 这个方法有如下特点: 如果可挂起计算中没有挂起点挂
kotlin协程中状态机视角看挂起与恢复
kotlin协程中状态机视角看挂起与恢复 挂起 在状态机的挂起点返回了COROUTINE_SUSPENDED,停止挂起点后续执执行。挂起的实质是把状态机某个挂起点后续的执行给暂停了。 恢复 状态机实例
kotlin协程中的桥接方法
kotlin协程中的桥接方法 泛型擦除的影响 在StringTransformer中期望重写Transformer中的: 但是编译时Transformer中的这个方法被擦除为: 如果此时什么都不做,原
在kotlin协程中将非挂起函数类型赋值给挂起函数类型
在kotlin协程中将非挂起函数类型赋值给挂起函数类型 问题 注意“::fetchImage”的类型为"() -> String",但是kotlin语法却允许将这个非挂起函数类型赋值给"suspend
kotlin协程的启动分析
kotlin协程的启动分析 讨论前提 以下讨论先不涉及协程状态管理。 启动目标 启动协程的实质上是将可被挂起的计算执行从头开始起来。suspend () -> T 或者 suspend R.() ->
kotlin协程中的createCoroutineUnintercepted()
kotlin协程中的createCoroutineUnintercepted() 先调用createCoroutineUnintercepted()创建,然后在启动 两个方法唯一的区别就是receiv
kotlin协程中的unrolling recursion via loop
kotlin协程中的unrolling recursion via loop 作用 将递归调用转成循环避免深度递归导致的栈溢出或不必要的开销。 原理 构造一个状态机分布: 假设没有这种优化,则当Z.r
kotlin协程中suspendCoroutineUninterceptedOrReturn()方法原理
kotlin协程中suspendCoroutineUninterceptedOrReturn()方法原理 背景 当协程挂起以后,如果要恢复执行,需要拿到后续执行对应的续体。 作用 参考suspendC
kotlin协程中的LockFreeLinkedListNode
kotlin协程中的LockFreeLinkedListNode 结构 结构为双向链表,链表中元素类型为: ListClosed(LockFreeLinkedListNode) Node(LockFr
kotlin协程中launch()方法block参数的receiver分析
launch()方法block参数的receiver分析 分析 根据block参数的类型:suspend CoroutineScope.() -> Unit可知,此时的this就是block的rece
kotlin中调用java中实现的挂起函数
kotlin中调用java中实现的挂起函数 挂起方法编译以后反编译成的java代码特点 观察上述代码发现: 挂起函数反编译成java代码以后的返回值类型总是“Object” 函数参数一一对应,但是编译
compose中验证某个类型是否稳定的办法
compose中验证某个类型是否稳定的办法 在开启Strong Skipping mode的情况下: 如果某个类型被视为不稳定,则在判断是否跳过重组时使用===比较 如果某个类型被视为稳定,则在判断是
compose中SideEffect涉及的闭包捕获解释
compose中SideEffect涉及的闭包捕获解释 问题 这里只从kotlin语法的角度解释上述代码中LaunchedEffect的lambda参数捕获onTimeout发生在什么时候? 详细解释
compose中的StrongSkippingMode
compose中的StrongSkippingMode 开启和关闭 从Kotlin 2.0.20开始默认开启Strong skipping. 开启以后效果 Composables with unsta
compose中的remember()
remember remember()用于记住一个存在于所在可组合项生命周期内的值(在进入组合以后,退出组合之前)。分2种情况讨论 1.不带key的情况 当所在可组合项进入组合时(Initial Co
compose中的derivedOf()
compose中的derivedOf() lambda中不包含State lambda中如果不包含State,则derivedStateOf的lambda参数只会在derivedStateOf第一次调
70KB 单文件数独: 数独生成器 + Android 16 手动出 APK 踩坑全记录
做这个数独游戏其实是个意外。 三个月前我妈给我推荐了个"老年版数独" app, 我装上发现: 启动 50MB,开机看广告,启动要登录,很容易误触广告导致游戏暂停,我决心自己手搓一个!
compose中为什么RED区域是50dp的理解
compose中为什么RED区域是50dp的理解 问题的核心:约束是向上报告的,绘制是向下接收的的,但它描述的是 父级向更上层报告尺寸 的行为,而不是 父级向子级分配绘制区域 的行
compose的@NonSkippableComposable
被@NonSkippableComposable标记的函数 被@NonSkippableComposable标记的函数的parent函数重组时,无论parent传递给它的参数是否变化,它总是被重组。
compose中的@NonRestartableComposeable
@NonRestartableComposeable 被@NonRestartableComposeable标记的函数 parent重组时不管该函数参数是否变化,它总是被执行,没有检测参数是否变化的步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30