首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin协程及在Android应用

前言 Kotlin协程底层是用线程实现,是一个封装完善供开发者使用线程框架。...launch启动一个协程,不会阻塞调用它线程,返回是Job。...async启动一个协程,不会阻塞调用它线程,返回是 Deferred。...提前说一下async和launch区别: async函数体中最后一行代码表达式运行结果会作为结果返回,也就是Deferred泛型T,我们可以通过其他协程函数获取到这个执行结果,而launch没有这样返回...比如:网络请求,数据库操作,文件操作等 Main:UI调度器,只有在UI编程平台上有意义,用于更新UI,例如Android主线程 Unconfined:非受限调度器,无所谓调度器,当前协程可以运行在任意线程上

11410
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发Kotlin扩展函数技巧!

Kotlin,扩展函数是一种非常有用功能,可以让我们向现有的类添加新功能,而无需修改类源代码。在本文中,我们将探讨Kotlin扩展函数原理和运用,以及如何在Android开发中使用它们。...扩展函数是Kotlin一种特殊函数,它允许我们向一个类添加新函数,而无需继承或修改这个类源代码。扩展函数语法非常简单,只需要在函数名前面加上类名,并用点号隔开即可。...同时,在使用扩展函数时,需要注意它们限制并遵循最佳实践。 在Android开发中使用扩展函数 在Android开发,扩展函数可以帮助我们简化代码,提高开发效率。...以下是一些常见Android开发场景,可以使用扩展函数来优化代码。 简化findViewById 在Android开发,我们经常需要使用findViewById来查找布局控件。...在函数体,我们调用了ViewGroupfindViewById方法,并将结果强制转换为T类型。

24020

Android 属性动画 --- 2(插器)

在上一篇文章,我们使用 ValueAnimator 这个类来实现了操作 View 对象 height 属性从而实现了动画形式显示和隐藏 View 控件。...下面通过例子来具体看一下: activity_main.xml: <?xml version="1.0" encoding="utf-8"?...那么我们可以不可以不使用 Android 给我们直接提供器而使用我们自己自定义器呢?答案是肯定。...getInterpolation 方法参数是一个 0~1 之间浮点数,它是描述动画完成进度一个数字,这个参数会随着动画运行而不断变化,根据设定动画时长匀速增加。...好了,总结起来自定义插器就是你可以通过自己琢磨出插器公式或者去网上找一些公式然后转换成 Android 器作为你自己器供实现属性动画使用。

1.5K10

Kotlin学习日志(二)数据类型

一、基本数据类型 Kotlin基本数据类型和其他高级语言得分类一样,包括整型、长整型、浮点型、双精度、布尔类型、字符型、字符串这几种常见类型,这样说可能过于抽象,那就和java基础数据类型来对比一下吧...基本数据类型名称 Kotlin数据类型 Java数据类型 整型 Int int 和 Integer 长整型 Long long 和 Long 浮点型 Float float 和 Float 双精度...1.2变量转换 Kotlin中进行数据转换和Java不同,就不一一对比了,直接说Kotlin如何进行数据类型转换,Kotlin中都是使用类型转换函数来进行数据类型转换,让我们来认识一下,如下表 Kotlin...数据类型转换函数 转换函数说明 toInt 转换为整型 toLong 转换为长整型 toFloat 转换为浮点数 toDouble 转换为双精度数 toChar 转换为字符 toString 转换为字符串...(字符串变量) 字符串长整型 字符串变量toLong方法 Long.parseInt(字符串变量) 字符串浮点数 字符串变量toFloat方法 Float.parseInt(字符串变量) 字符串双精度数

3.3K20

Kotlin 协程和 Android SQLite API 线程模型

在我们为 Room 添加协程支持期间,我们遇到并解决了在协程模型和 Android SQL API 没想到一些问题。在本篇文章,我们会向您阐述我们遇到这些问题,以及我们解决方案。... SQLite 事务受制于单个线程 上述代码问题在于 Android SQLite 事务是受制于单个线程。...比如,Dispatchers.IO 会使用一个共享线程池分流执行那些会发生阻塞操作,而 Dispatchers.Main 会在 Android 主线程执行协程。...在我们例子,这个是没有意义,在 Room 也只需要确定这个是否存在即可。... SQLite 线程限制是合理,这在 Kotlin 还没出现时已然如此设计了。

1.8K20

解决Android开发痛点问题用Kotlin Flow

前言 本文旨在通过实际业务场景阐述如何使用Kotlin Flow解决Android开发痛点问题,进而研究如何优雅地使用Flow以及纠正部分典型使用误区。...LiveData粘性机制会带来副作用,但这本身并不是LiveData设计缺陷,而是对它过度使用。 Kotlin Flow是基于kotlin协程一套异步数据流框架,可以用于异步返回多个。...LiveData会保证订阅者总能在变化时候观察到最新,并且每个初次订阅观察者都会执行一次回调方法。...需要手动添加lifecycleObserver来保证线程挂起和恢复,并且不支持协程。考虑使用kotlin协程Channel替代。...MVVM架构并不强调对表征UI状态Model收敛,并且对能影响UI修改可以散布在各个可被直接调用方法内部。

3.1K20

Androidxml文件解析3种方式总结

前言 xml 是数据传输一种格式,Android 布局文件、设置文件等都采用它来表示。...Android xml 文件解析也有多种方式,下面介绍常用 3 种方式: Dom 、 SAX 和 dom4j。下面话不多说了,来一起看看详细介绍吧。 先看一个简单 xml 文件: <?...文件一次读入内存,然后通过操作 Document 实例属性实现对 xml 文件中元素增删改查,具体代码如下: 2 SAX解析 SAX 对 xml 文件采用边读边解析方式,就像我们用眼睛读文章一样...,结合了 Dom 和 SAX 双方优点,对 xml 文件逐步读入内存,并且可以采用面向对象方式访问节点。.../app/src/main/java/test/DTD.xml"); } 结合以上三种解析方式特点,我们可以得出结论:如果 xml 文件很小,可以选择面向对象 Dom 或者 dom4j 方式;反之可以选择

1.1K20

Android实现动态改变shape.xml图形颜色

Android开发过程我们常遇到将某个图形颜色改变(例如用圆点不同颜色来代表不同状态) 像这样需求,一般我们使用androidshape就可以实现,比如 <?...xml version="1.0" encoding="utf-8"?...android:color="#000"/ </shape 如果有多种颜色,那么我们可以写多个这样shape,然后去使用。...补充知识:Android代码调整ImageView图标颜色 问题:只有一套图标,图标本身内容比较简单,但是在不同场景下需要显示不同颜色,且只改变图标颜色,不改变透明度 解法:通过如下参数构造ColorMatrix...实现动态改变shape.xml图形颜色就是小编分享给大家全部内容了,希望能给大家一个参考。

2.3K30

AndroidIntent与Bundle区别小结

正巧小伙伴问AndroidIntent和Bundle区别,特此总结下: Intent与Bundle在传区别 首先从使用上: Intent方式: 假设需要将数据从页面A传递到B,然后再传递到C..."); intent.putExtra("int",11); startActivity(intent); B页面: 需要先在B页面接收数据 Intent intent = getIntent...Bundle(); bundle.putString("String","MainActivity"); bundle.putInt("int",11); intent.putExtra(...另外一个原因,则是在Android如果使用Intent来携带数据的话,需要数据是基本类型或者是可序列化类型,HashMap使用Serializable进行序列化,而Bundle则是使用Parcelable...而在Android平台中,更推荐使用Parcelable实现序列化,虽然写法复杂,但是开销更小,所以为了更加快速进行数据序列化和反序列化,系统封装了Bundle类,方便我们进行数据传输。

1.5K20

Android 两个Activity 之间问题

Android 两个Activity 之间问题 在Android项目中,有时需要一些全局静态变量来保存一些数据,这样在关闭赋值界面后,其他页面还可以调用这些数据。...但是我们知道,在Java全局静态变量(java没有全局变量这一个概念,但是java提供了public static关键字来实现一些类似于全局变量关键字)都是在程序加载时就放人到内存,它是存储在方法区里...这是会影响到系统性能。那么在android可不可以不通过这种方式来传递呢? 今天自己做了一个小demo,感觉还不错:不通过全局静态变量而实现两个Activity之间传递数据。...Intent传,那么如果有三个Activity是依次显示,但是,第三个Activity需要用到第一个Activity,这种方法是否还能够发挥功效?...是否还有其他更好方法? 以上就是Android 两个Activity 之间问题,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站支持!

2.1K31

Androidsqlite查询数据时去掉重复方法实例

(也表示查询结果) * 参数思:selection表示查询条件,PHONE_NUMBER+" = ?"...表示根据手机号去查询模式 * 参数五:selectionArgs 表示查询条件对应,new String[]{phoneNumber}表示查询条件对应 * 参数六:String...,new String[]{MODEL}表示查询该表当中模式(也表示查询结果) * 参数思:selection表示查询条件,PHONE_NUMBER+" = ?"...表示根据手机号去查询模式 * 参数五:selectionArgs 表示查询条件对应,new String[]{phoneNumber}表示查询条件对应 * 参数六:String groupBy...,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

2.5K20
领券