![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kotlin
文章平均质量分 86
_蓝橙
日拱一卒无有尽,功不唐捐终入海
展开
-
在Android中解析XML文件并在RecyclerView中显示
定义一个数据类Item和一个RecyclerView的适配器ItemAdapter。原创 2024-05-29 17:57:14 · 630 阅读 · 1 评论 -
一个用Kotlin编写简易的串行任务调度器
灵活性:允许动态添加任务,并根据任务负载需要创建或关闭执行器,从而管理执行器的生命周期。单线程限制:当前实现使用单线程执行器,这意味着任务是顺序执行的,而不是并行执行。这可能是CPU密集型任务的瓶颈。原创 2024-05-14 10:39:43 · 563 阅读 · 0 评论 -
Flutter中实现中国省份地图
可以点击省份改变颜色,更多功能可以自行拓展。本文用于记录在Flutter项目中安卓端实现中国地图,因为实现过程是通过Flutter调用安卓原生代码实现,所以IOS端不可用,通过本文你还可以学会如何通过Platform Channels在Flutter代码中调用这些原生代码。原创 2024-01-24 20:42:53 · 1405 阅读 · 0 评论 -
Kotlin 协程与 Channel(通道)
简介Kotlin 中的 Channel(通道)是一种协程间通信的机制,用于在协程之间传递数据。它提供了一种有序、线程安全的方式,让生产者和消费者之间进行异步数据传输。Channel 这个管道的其中一端,是发送方;管道的另一端是接收方。而管道本身,则可以用来传输数据。send()receive()close()itelement在上述示例中,创建了一个对象用于传递整数数据。通过launch函数创建了两个协程,一个用于发送数据,另一个用于接收数据。在发送者协程中,使用send()原创 2023-07-20 22:03:57 · 1480 阅读 · 1 评论 -
Kotlin 协程基础入门:协程的上下文 Context (万物皆为Context)
可以通过调用 coroutineContext 扩展函数,获取当前协程的 CoroutineContext。由此可见,Dispatcher 实际上就是 CoroutineContext。也就可以理解上面用法了,归根到底他们都是同类型的,至于号是kotlin 中的运算符重载operator。原创 2023-06-10 19:00:54 · 1220 阅读 · 0 评论 -
Kotlin 协程基础入门:Job和协程的生命周期
Job简介在 Kotlin 协程中,一个 Job 对象是一个代表正在执行的异步操作的任务,可以用它来控制与取消协程的执行,是协程执行的核心组件之一。在以上协程创建方式中,Job 对象都被自动管理,开发者无需显式管理,但是可以通过 Job 对象的方法来控制协程的执行,如取消和等待,相当于协程的句柄。由上面代码可知,通过 launch 函数创建的协程会返回一个 Job 对象。在协程执行完成后,无法获取协程执行的结果。原创 2023-06-06 23:08:48 · 472 阅读 · 1 评论 -
Kotlin 协程基础入门:协程的三种启动方式和挂起函数
通常,我们会在协程中使用挂起函数,并利用协程的上下文来管理执行环境。协程构建了一种轻量级的线程,将线程的状态保存在内存中,然后利用挂起函数实现了产生、挂起、恢复等机制,从而提供了非阻塞的多任务异步编程方式。withContext()是Kotlin协程库中的一个高级函数,它用于切换协程的执行上下文,例如在一个协程中切换到IO线程执行网络请求或者读写文件等操作。总之,挂起函数是 Kotlin 协程的重要概念,它本质是一种带有挂起(协程)能力的标记函数,它利用了协程和协程上下文机制来实现非阻塞式的异步编程。原创 2023-06-04 21:56:54 · 1107 阅读 · 0 评论 -
Kotlin 学习笔记
接口: MutableList 实现了 List 接口,因此可以使用 List 接口中的方法和属性,如 get(),size(),contains() 等,同时还额外提供了可以修改列表元素的方法,包括 add(),remove(),set() 等。总之,crossinline 关键字用于修饰函数参数,可以在 Lambda 表达式中使用 return 关键字,但是只能在 Lambda 函数自身中进行局部返回操作,不能对其它外围函数进行非本地返回操作,以避免影响封闭函数中的代码执行。原创 2022-11-02 18:29:58 · 1639 阅读 · 2 评论