
kotlin
文章平均质量分 58
longforus
安卓码农
展开
-
Kotlin Coroutine的超时处理
这2天在跟着kotlin的官方文档练习阅读,复习协程.看到Cancellation and timeouts的时候,觉得自己之前的超时处理逻辑如果切换成withTimeout将会更加简洁.果然官方教程是最好的教程.先看看我之前的实现: val timeOut = lifecycleScope.async { delay(40 * 1000) LogUtils.e(TAG, "上传超时 onTimeout: 45s") false } val uploadResult =原创 2021-03-30 16:34:18 · 4210 阅读 · 0 评论 -
Kotlin中groupBy和groupingBy使用中的对比
今天在看Kotlin的Coroutines官方文档练英文的时候,它有个Hands-on,在里面要实现一个aggregate的功能,先来看看我的初版实现:fun List<User>.aggregate(): List<User> { val map = this.groupBy { it.login } val result = ArrayList<User>(map.keys.size) for (login in map.keys) {原创 2021-03-25 18:56:51 · 4269 阅读 · 0 评论 -
Kotlin使用const val的一个注意点
companion object { const val INIT_PAGE_INDEX = "0" const val DEFAULT_PAGE_SIZE = 10 const val PAGE_INDEX_KEY = "pageNum" const val PAGE_SIZE_KEY = "pageSize" ...原创 2020-02-11 11:08:36 · 1057 阅读 · 0 评论 -
简单的LRU队列kotlin实现
最近的项目中貌似需要一个這样的队列,想着实现了一下,后来又没有使用,就没有进行严格的测试.import java.util.*import kotlin.concurrent.thread/** * @describe 最近最少使用队列, 只能使用這里override的api哦 * @author XQ Yang * @date 4/3/2019 3:09 PM */clas...原创 2019-04-03 19:39:44 · 1062 阅读 · 0 评论 -
RxJava在toList()后subscribe()不执行的问题
今天在项目中遇到一个问题:需要遍历一个list在经过2次异步调用修改list中的一些值之后,刷新adapter,通知数据修改.略显复杂,一般的同步修改倒是没有什么了,但是需要进行2次异步调用修改,而且要跳过一些item,还要进行类型转换.最后还要根据异步调用返回的值进行排序,这个就略显复杂了.项目中引入了RxJava2,近几年的项目也一直都在用,今天面临的这种数据流的操作,最合适的也就是它了.遍...原创 2019-03-28 23:21:20 · 2945 阅读 · 2 评论 -
RxNote
map把一种类型的被观察者转换为任意类型的被观察者Observable.create({ e: ObservableEmitter&lt;Int&gt;? -&gt;//发送的int e?.onNext(1) e?.onNext(2) e?.onNext(3) println(Thread.currentThread().name) e?.onComplete() })...原创 2018-09-28 14:38:14 · 358 阅读 · 0 评论 -
API debugger 一个类似Postman的支持自定义加密传输的后台API接口调试工具
API debuggerA like Postman API debugger that supports custom encryption.一个类似Postman的支持自定义加密传输的后台API接口调试工具. 项目地址: https://github.com/longforus/api-debugger特征支持可扩展的自定义的参数加密方式.使用数据库按项目分开保存Ba...原创 2018-09-08 09:50:01 · 1059 阅读 · 0 评论 -
Kotlin的inline noinline笔记
inline这个关键字用于函数声明,表示这个函数的内联的,编译器在编译时会对这种函数进行优化,如何优化的呢?先有如下代码:fun main(args: Array&amp;lt;String&amp;gt;) { fun1(&quot;123123&quot;)}inline fun fun1(arg: String) { println(&quot;这里是fun1&quot;原创 2018-08-21 16:18:36 · 692 阅读 · 0 评论 -
安卓开发插件推荐
前言 现在的安卓码农们,基本上都已经把锄头换成Android Studio了吧,Android Studio是基于Jetbrains 的IntelliJ IDEA开发的。 继承了Jetbrains全家桶系列的优良风格:智能,强大,界面美观。。。我刚刚从Eclipse转到IDEA的时候还很不习惯,但是为了这个颜值,还是坚持了下来,后来推出了Android Studio,立马就无缝上手了。和...原创 2018-07-07 15:14:55 · 7585 阅读 · 8 评论 -
ARouter 配合Fragment :"Fetch fragment instance error"异常的处理
现在的项目中使用ARouter来处理组件化开发中的跳转和部分数据传递的需求,使用一直很顺畅,今天遇到一个不太常见的异常.记录一下:异常信息E/ARouter::: Fetch fragment instance error, at java.lang.reflect.Constructor.newInstance0(Native Method) ...原创 2018-03-14 21:13:15 · 2386 阅读 · 0 评论 -
RxJava实际应用实例-Observable的依次订阅
最近项目的图片上传中遇到一个问题.后台限制只能一次上传一张图片,且不可以并发上传,必须等前一张上传完毕后才能上传第二张图片.依次将多张图片上传完毕后,才能进行下一步操作.这里不吐槽后台的无能.我开始使用递归调用带回调解决了这个问题,如下:常规实现 val imgs = Collections.synchronizedList(ArrayList<String>()) ...原创 2018-03-07 19:41:54 · 1250 阅读 · 0 评论 -
Android Studio 添加Kotlin extensions 和lambda支持
要添加extensions才能直接使用xml内的ID在project级别的gradle中添加:buildscript { ext.kotlin_version = '1.1.1' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0'原创 2017-03-17 20:29:26 · 2331 阅读 · 0 评论