当我们给构造函数指定了默认值,并且存在重载的构造函数, 比如如下场景 如上代码场景,kotlin是如何决定在重载的时候调用哪一个构造函数呢? 首先kotlin是如何处理含有默...
当我们给构造函数指定了默认值,并且存在重载的构造函数, 比如如下场景 如上代码场景,kotlin是如何决定在重载的时候调用哪一个构造函数呢? 首先kotlin是如何处理含有默...
我们在自行编写Wav播放器的时候,有的时候发现经过ffmpeg处理后的wav文件头大小不再是44字节大小,使用 二进制分析工具可以看到其中有一个LIST Chunk部分,不知...
runBlocking是kotlin提供的一个协程启动函数,它的作用是运行指定的中断函数,同时保证在runBlocking的协程体执行完成之前,runBlocking的下一行...
park/unpark和wait/notify都是Java提供给我们的机制,让我们能够对当前线程是否陷入阻塞进行控制。 park/unpark是LockSupport包中的功...
开发中,设计给了一个切图,比例为1356*1808,从设计稿的要求来说,这个切图宽度是需要撑满屏幕,高度按照比例自适应,根据该思路,我在xml中编写了如下布局,结果发现图片并...
谷歌在安卓12以及以后的系统,对应用启动服务进行了更严格的限制,如果需要应用在后台停留的时候,仍然能够执行后台代码逻辑,这个时候需要通过前台服务的机制,前台服务和一般的服务A...
答案是会!以下为详细的解释。 SynchronousQueue是没有容量的队列,往队列里插入一个元素,下一次插入会陷入阻塞,直到之前的元素被其他消费者给取走。 在线程池的上下...
由于Activity可能会被回收,通常来说有效的监听目标Activity返回的结果是通过onActivityResult或者Activity主动发送广播,这种系统提供的rpc...
项目中使用了自定义View作为Toast的展示内容,发现在后台时Toast自定义View不展示,而使用系统的Toast仍然会展示,查了半天,以为是我姿势不对,最后发现是系统变...
入门 https://developer.android.com/jetpack/compose/animation/quick-guide[https://develope...
suspend () → R 和 () → R 本质上函数签名完全不同,一般情况下,我们没法将前者传递给后者,但当函数是inline的时候例外 由于justDoAction会...
当项目的gradle升级到8.0之后,由于项目中使用了room,因此也使用了ksp替代kapt,然后我在编译的过程中就遇到了如下错误 google一番,找到了几个比较相关的解...
最近思考下对于单词分割的想法,思考得来可能不同的语言对于单词的分割是不同的,那我以空格等分割符作为基础,以不同语言的正则表达式去匹配,岂不是就可以获取到单个单词,妙啊妙啊,在...
mutableStateListOf 返回一个可感知状态变化的MutableList 通常的State只能用来值改变的场景,对于List数据,List引用不变,往内部添加数据...
flow是如何工作的 stateflow是建立在flow的基础上的,要理解stateflow,首先需要对flow有一定的了解,其实flow的原理很简单,不过是建立在了协程的基...
jetpack库 理解SavedStateHandle 作用 和ViewModel协作,用于从Activity销毁重建中恢复ViewModel的相关状态数据,我们知道当Act...
【声 明】 首先,这一系列文章均基于自己的理解和实践,可能有不对的地方,欢迎大家指正。其次,这是一个入门系列,涉及的知识也仅限于够用,深入的知识网上也有许许多多的博文供大家学...
上一次看ThreadLocal的源代码已经是很久之前的事情了,今早突然想起发现自己连ThreadLocal的原理一点也想不起了,因此重新再读一次源码,分析一下ThreadLo...
HashMap支持null key 和null value, HashTable不允许空的value? 遍历的成本 == key的总数+n(cap) 因此不要把最初的cap设...