随笔分类 -  Android线程、协程

为何一个线程可以对应一个looper
摘要:一:前置知识 Looper有一个变量:ThreadLocal<Looper> Thread.currentThread 打破次元壁,在应用层沟通底层,获得当前线程信息 每一个Thread,不管是Android的main thread,还是自己定义的thread,总之就是一个Thread,含有一个Th
198
0
0
kotlin协程suspend背后的逻辑和状态机思想
摘要:一:前置知识 1:状态机是什么 状态机state machine是什么?它就是用来表示一个对象处于什么状态然后决定正确状态下做正确的事。 比如说:饮料机在没有扫码的时候处于0状态,就不能调用开门这个方法,而扫码之后,饮料机的状态改变,才可以开门,但是扫了码就不能再扫了,状态不同,做的事也不同,状态之
888
0
0
Handler消息机制 笔记
摘要:这是笔记,没有源码分析和详细过程,只有自己总结出来的重点,源码分析看参考资料,前辈写的很好。 一个线程,一个Looper,一个MessageQueue,多个Handler MessageQueue单链表结构 使用ThreadLocal机制保证一个线程一个Looper:https://www.cnbl
85
0
0
转 协程掌握系列 by Manuel Vivo
摘要:https://medium.com/androiddevelopers/coroutines-first-things-first-e6187bf3bb21 https://medium.com/androiddevelopers/cancellation-in-coroutines-aa6b90
75
0
0
在jetpack compose中获取Application实例的方法/避免作用域结束导致协程取消
摘要:前言: 想知道如何获取这个application实例的起因是关于协程的取消。 于是我创建了一个Application类,并在其中创建了一个CoroutineScope的变量。 class MyApplication:Application() { val applicationScope = Cor
222
0
0
kotlin协程问题
摘要:一:拦截器可以有多个吗 不可以,因为CoroutineContext在组合在一起的时候,是从左往右累加的,具有相同Key值的Element,左边的会丢弃。而拦截都继承的 ContinuationInterceptor 它内部代码是这样的 public interface ContinuationIn
110
0
0
Android Room与java.lang.NullPointerException与observeAsState
摘要:val itemList: List<Message>? by messageViewModel.messageList.observeAsState() MessageWindow(itemList = itemList!!) 报指针null错误的原因就是observeAsState函数的问题,
124
0
0
Handler、Looper
摘要:一:Looper和Handler模型: 二:怎样在thread中使用Looper和Handler 方法介绍: 使用示例: 三:对MessageQueue消息队列的介绍 (Message.obtain从消息池中取一个Message避免创建过程,提高效率) 四:如何与main thread主线程交流 五
134
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起