1.简介 Retrofit对协程的支持非常的简陋。在kotlin中使用不符合kotlin的优雅 interface TestServer { @GET("banner/json") suspend fun banner(): ApiResponse<List<Banner>> } //实现并行捕获异常的网络请求 fun oldBanner(){ viewModelScope.launch {
前言 本篇是在Android官网对Kotlin协程的学习记录。记录Kotlin Coroutines在Android上的特点、应用等 协程概述 一、协程是什么? 协程是一种并发的设计模式,可以使用它来简化异步执行的代码,它可以帮助管理一些耗时的任务,以防耗时任务阻塞主线程。协程可以用同步的方式写出异步代码,代
初看suspend关键字 下面的例子模拟一个网络请求: class Temp { suspend fun fetchData(argument: String): Boolean { val result = netRequest(argument) return result == 0 } // 模拟网络请求 suspend fun netRequest(argument: String): Int
问A 启动 B,B 又启动 A 的生命周期调用顺序? 5.你刚才提到 onsaveinstancestate() ,说一下调用时机,它用来干什么的。 6.onsaveinstancestate() 保存的那个参数叫什么?Bundle 里面都放一些什么东西?怎么实现序列化?Parcelable 和 Serializable有什么区别? Bundle 。 7.数组和链表的区
废话不说,直接上代码。 private fun quickSort(nums: IntArray, lo: Int, ho: Int): IntArray { if(lo >= ho) { return nums } var left = lo var right = ho val base = nums[left] while (left < right) {
首先在application 创建test class 在application 中引用 如图所示,在IDE中,并没有提示错误 然后我们编译一下项目 出现了错误提示 仔细观察会发现 使用的编译是javac 然而上例使用的java with kotlin ,因此可能是kotlin的引用错误导致。 参考官网文档:https://developer.andro
| --pct-touch <percent> | Adjust percentage of touch events. (Touch events are a down-up event in a single place on the screen.) | | --pct-motion <percent> | Adjust percentage of motion events. (Motion events consist of a down event somewhere
如果您的即时任务可以在用户脱离某个作用域时结束,比如切换到其它界面,我们建议您还是直接使用 Kotlin 协程。 在这个 WorkManager codelab 教程中,我们会对图片进行模糊化处理,并且将处理后的数据存储在磁盘上。我们看一下这个过程中需要哪些操作。 添加 work-runtime-ktx 依赖:
//OkhttpClient for building http request url private val tmdbClient = OkHttpClient().newBuilder() .addInterceptor(authInterceptor) .build() fun retrofit() : Retrofit = Retrofit.Builder() .client(tmdbClient) .baseUrl(“https://api.themoviedb.org/3/”) .ad
private val authInterceptor = Interceptor {chain-> val newUrl = chain.request().url() .newBuilder() .addQueryParameter(“api_key”, AppConstants.tmdbApiKey) .build() val newRequest = chain.request() .newBuilder() .url(newUrl) .build() chain.proceed(newRe
协程的构建器 launch和async构建器都用来启动新协程 launch,返回一个job并且不附带任何结果值 async,返回一个Deferred,Deferred也是一个job,可以使用.await()在一个延期的值上得到它的最终结果 //等待一个作业:join与await private fun runBlocking1(){ //runBl
buildFeatures { viewBinding true } } 如果你那个布局文件不需要生成绑定类(不想用这个功能),请将该 tools:viewBindingIgnore=“true” 属性添加到该布局文件的根视图中: <LinearLayout … tools:viewBindingIgnore=“true” > … 使用 如果为Module启用了视图绑定,则会为Modu
is 与 !is 操作符 我们可以在运行时通过使用 is 操作符或其否定形式 !is 来检测对象是否符合给定类型: if (obj is String) { print(obj.length) } if (obj !is String) { // 与 !(obj is String) 相同 print("Not a String") } else { print(obj.length
读取相对较慢 SP在加载的时候已经将value反序列化存在HashMap中了,读取的时候索引到之后就能直接引用了。 而MMKV每次读取时都需要重新解码,除了时间上的消耗之外,还需要每次都创建新的对象。 不过这不是大问题,相对SP没有差很多。 需要引入so, 增加包体积 引入MMKV需要增加的体
IF 表达式 一个 if 语句包含一个布尔表达式和一条或多条语句。 // 传统用法 var max = a if (a < b) max = b // 使用 else var max: Int if (a > b) { max = a } else { max = b } // 作为表达式 val max = if (a > b) a else b 我们也可以把 IF 表达式的结果赋值
2.8.1 字符串内嵌表达式 就是字符串中嵌入变量,这个在C中也使用过,没有啥特别的 ( 变 量 ) 如 果
Kotlin语言作为google推荐的安卓开发语言,了解并使用它是基本的安卓开发学习的必经之路。今天就先简单了解一下kotlin的语法特点和基本使用,无非可就是变量,函数,对象等等的使用。 package com.chris.firstproject import kotlin.math.max //初步学习使用kotlin语言 //kotlin是
Kotlin 协程系列文章导航: Kotlin 协程一 —— 协程 Coroutine Kotlin 协程二 —— 通道 Channel Kotlin 协程三 —— 数据流 Flow Kotlin 协程四 —— Flow 和 Channel 的应用 Kotlin 协程五 —— 在Android 中使用 Kotlin 协程 目录一、Flow 的基本使用1.1 Sequence 与 Flow1.2 F
Kotlin 协程系列文章导航: Kotlin 协程一 —— 协程 Coroutine Kotlin 协程二 —— 通道 Channel Kotlin 协程三 —— 数据流 Flow Kotlin 协程四 —— Flow 和 Channel 的应用 Kotlin 协程五 —— 在Android 中使用 Kotlin 协程 目录一、 Flow 与 Channel 的相互转换1.1 Flow 转换
Kotlin 协程系列文章导航: Kotlin 协程一 —— 协程 Coroutine Kotlin 协程二 —— 通道 Channel Kotlin 协程三 —— 数据流 Flow Kotlin 协程四 —— Flow 和 Channel 的应用 Kotlin 协程五 —— 在Android 中使用 Kotlin 协程 目录一、Android MVVM 结构二、添加依赖三、在后台
1.简介 Retrofit对协程的支持非常的简陋。在kotlin中使用不符合kotlin的优雅 interface TestServer { @GET("banner/json") suspend fun banner(): ApiResponse<List<Banner>> } //实现并行捕获异常的网络请求 fun oldBanner(){ viewModelScope.launch {
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun foo() { //已实现 // 可选的方法体 println("foo") } } 实现接口 一个类或者对象可以实现一个或多个接口。 class Child : MyInterface { override f
什么是Kotlin? Kotlin就是一门可以运行在Java虚拟机、Android、浏览器上的静态语言,它与Java 100%兼容,如果你对Java非常熟悉,那么你就会发现Kotlin除了自己的标准库之外,大多仍然使用经典的Java集合框架; 总结来说: Android官方开发语言100%兼容JavaKotlin-Js 前端开发Kotlin-Jvm
类型推断: 编译时常量: range表达式: when表达式: String模板: kotlin函数: