CoroutineContext 即协程上下文,是Kotlin协程中的重要概念,可以用来切换线程池、指定协程名、捕获异常等。 CoroutineContext 是一个接口,如 Job、Deferred、Dispatcher、CoroutineName、CoroutineExceptionHandler、挂起函数都与 CoroutineContext 密切联系。 Coro
步骤1:自身Context移除掉目标Context,并且返回移除后的CoroutineContext 步骤2:判断移除后的CoroutineContext是否为EmptyCoroutineContext,如果为EmptyCoroutineContext,那就直接返回目标Context,这是什么意思呢? 假设自身Context 和目标Context 相等(Key相等),那么移除后的 CoroutineContext == EmptyCoroutineContext,所以就没有相...
在Activity中获取Context的方法有很多种,下面我们将介绍几种常见的获取Context的方法。 **方法一:直接使用Activity的成员变量** 这是最简单的一种方式,直接在Activity的成员变量中保存Context对象。例如: ```kotlin class MyActivity : Activity() { private lateinit var context: Context onCreate() { context = ...
现在我们再看回简化前的plus方法,它里面有个对ContinuationInterceptor的处理,目的是让ContinuationInterceptor在每次相加后都能变成CoroutineContext中的一个元素, ContinuationInterceptor它也是继承自Element,通常叫做协程上下文拦截器,它的主要作用是在协程执行前拦截它,从而在协程执行前做出一些其他的操作,前面我们讲到Coroutine...
CoroutineContext 协程上下文 / 挂起函数 / 概念:使用关键词suspend修饰。 delay 将当前协程挂起指定时间,但不会阻塞线程,必须在协程的作用域或者其他挂起函数中执行。 withContext 必须在协程的作用域中调用,必须指定协程的上下文,函数的最后一行是返回值。
code 5,如果 cancel 方法被调用,则会打印出:MainActivity: +++++ invokeOnCompletion kotlinx.corout...
kotlin 写弹框 命令式UI、声明式UI 自定义弹框视图 富文本样式 SpannableStringBuilder 扩展函数 典型的弹框场景功能分析顶部Logo遮盖效果,使用相对布局或约束布局都很好实现 描述信息的富文本样式,不会的可以来这儿 - String富文本de多种样式 操作按钮,自定义 shape 即可实现...
Kotlin 还支持指定/默认参数,这让开发者在编写方法时,不需要为不同参数的版本另写一个方法,而是直接在同一个方法里,通过 “?” 标出可空参数,通过 “=” 给出参数的默认值即可。 // View.java public View(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public View(Cont...
image.png kotlin-android-extensions kotlin-android-extensions插件可以直接使用资源,节省findviewbyid(), 不需要添加任何额外代码...setSupportActionBar(toolbarView) ... ...
apply plugin:'kotlin-android-extensions' dependencies { classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.1' } app Gradle文件: compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1.1' compile 'org.jetbrains.anko:anko-sdk25:0.10.0-beta-1'// sdk15, sdk19, sdk21, sdk23 are also available...