文章目录一、前言二、Dispatchers三、Dispatchers.Unconfined四、线程之间的跳转五、协程及其子协程六、家长责任七、协程的名字八、元素组合九、协程范围十、读取本地数据十一、参考文档 一、前言 协程总是在由CoroutineContext类型表示的某个上下文中执行。它是由一组元素构成的。主要是Job和Dispatchers构成的二、Dispatchers Dispatch
flow 说明流简单使用suspend fun flow1() {
flow<Int> {
(0..4).forEach {
emit(it)//生产者发送数据
}
}.collect {
println(it)//消费者处理数据
}
}本例中 flow { … } 构建块中的代码可以挂起流
转载
2023-12-15 11:12:42
183阅读
第一部分:已有的项目中添加C++本文主要介绍:在没有集成C++的项目中添加C++,步骤如下:一、添加资源文件1、Android视图中app上点右键, 选择 new->Folder->JNI Folder 在出现的对话框change folder lacation中打钩,jni改成cpp:src/main/cpp/ 2、在cpp目录上点右键, 选择new ->C/C++ Sourc
转载
2023-12-01 11:07:24
208阅读
# Android中的全局变量:Kotlin实现
在Android应用开发中,全局变量是一个非常重要的概念。全局变量允许我们在不同的Activity、Fragment或Service之间共享数据。这对于游戏数据、用户设置等场景尤其重要。而在Kotlin中,实现全局变量的方法有多种选择。本文将详细讲解如何在Android中使用Kotlin定义和使用全局变量,并提供代码示例。
## 为什么使用全局
1 类型推导在Java中如果想要定义一个变量,需要在变量名前面声明这个变量的类型,比如说int a表示a是一个整型变量,String b表示b是一个字符串变量。而Kotlin中定义一个变量,只允许在变量前声明两种关键字——val和 var,类型通常在变量名的后面:val a: Int = 10
val s: String = "I am Kotlin"注意,Kotlin每一行代码的结尾是不用加分号
# 如何在 Android Kotlin 中实现全局静态常量
在 Android 开发中,经常会需要使用一些全局静态常量,这些常量在应用的不同部分都可能被引用。为了帮助刚入行的小白开发者理解如何实现全局静态常量,本文将详细介绍整个流程,并提供示例代码以及详细解释。
## 流程概述
在开始之前,让我们先概括一下实现全局静态常量的步骤。下面的表格展示了整个流程。
| 步骤 | 描述
使用Kotlin简单的对Retrofit+RxJava大多数普通请求进行封装提示:如果对Kotlin,RxLifecycle,Retrofit,RxJava等不太了解的小伙伴可以参考网上的基础资料1.惯例先添加依赖//Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com
变量如果你是一个java开发者你会觉得kotlin声明变量的方式非常的别扭,但是如果你是一个js开发者你就会觉得kotlin声明变量的方式非常熟悉,kotlin中声明变量必须使用var 和val关键字var :声明的变量表示可变变量,可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和Java中声明变量的方式一样val:声明一个只读变量,相当于java中的final变量,一个val穿件的时
转载
2023-09-06 16:27:24
381阅读
Kotlin 是强类型的语言,Kotlin 要求所有的变量必须先声明、后使用,声明变量时必须显示或隐式指定变量的类型(隐式的是指,声明的时候同时初始化,这样编译的时候就可以推断出该变量的类型了,Java 新版本也加了 var 关键字)。 声明变量使用 var、val 关键字,如下:var | val 变量名 [:类型] [= 初始值] 和 Java 的不同之处是,变量类型写在变量名后面了
转载
2024-02-13 12:30:13
309阅读
官方文档: http://kotlinlang.org/docs/reference/extensions.html1.扩展(extensions)在不修改原类的情况下,
Kotlin能给一个类扩展新功能,无需继承该类,也不用任何设计模式(如装饰模式等),
Kotlin支持扩展函数和扩展属性!
为什么要使用扩展(动机):
在Java中,有很多工具类如java.util.Collectio
1.Kotlin簡介Kotlin 是一个用于现代多平台应用的静态编程语言,Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 Kotlin,如前面所说,它是JetBrains开发的基于JVM的语言。JetBrains因为创造了一个强大的Java开发IDE被大家所熟知。Android Studio,官方的Android IDE,就是基于I
Kotlin 杂谈之 setOnClickListener 为什么可以简写成 Lambda先上代码://例1
//java里定义的一个接口
public interface OnClickListener {
void onClick(View v);
}
//kotlin调用
view.setOnClickListener { //do
转载
2024-06-25 20:47:48
41阅读
2.4 Namespace介绍2.4.1 Namespace是什么Namespace是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的进程在各自的Namespace内对同一种资源的使用不会互相干扰。这样的解释可能不清楚,举个例子,执行sethostname这个系统调用时,可以改变系统的主机名,这个主机名就是一个内核的全局资源。内核通过实现UTS Name
转载
2024-09-18 13:05:08
30阅读
协程是 Kotlin 1.1 引入的最牛逼的功能。他们确实很棒,不但很强大,而且社区仍然在挖掘如何使他们得到更加充分的利用。简单来说,协程是一种按序写异步代码的方式。你可以一行一行地写代码,而不是到处都有乱七八糟的回调。有的还将会有暂停执行然后等待结果返回的能力。如果你以前是 C# 程序员,async/await 是最接近的概念。但是 Kotlin 中的协程功能更强大,因为他们不是一个特定想法的实
转载
2023-11-09 11:11:42
70阅读
概述前面我们讲过了lifecycle的使用及原理。今天我们谈谈viewModel。原本使用和原理是准备分开写的,结果我看了下ViewModel的原理,很简单,所以决定把两者放在一起了。那么接下来,我们进入正题。ViewModel是什么?ViewModel旨在以注重生命周期的方式存储和管理界面相关的数据。我们知道当屏幕旋转时,Activity会销毁并且重建,而它让数据可在发生屏幕旋转等配置更改后继续
转载
2024-02-21 23:38:56
396阅读
# Android Kotlin 获取注解的实用指南
在Android开发中,注解是一种强大而实用的工具。它们可以提供编译时信息或运行时信息。本文将帮助你了解如何在Kotlin中获取注解。我们将分步进行,每一步都有详细的代码示例和注释。整件事情的流程如下:
## 流程步骤
| 步骤 | 操作 |
|-------|
原创
2024-09-08 03:36:35
141阅读
一、Kotlin中类的继承在Java中,类基于Object,而在Kotlin中类基于Any,所有类都默认继承Any。kotlin中的类默认是final类型的,不可被继承,想要作为基类被继承必须使用open关键字修饰。对于没有超类型声明的类默认超类是Any,Any类只有三个函数~package kotlin
public open class Any {
public open o
1.延迟初始化属性// Kotlin可以对属性设置为延迟初始化
lateinit var dept: Department提示: 延迟初始化属性要求:不能是可空类型;只能使用为var声明;lateinit关键字应该放在var之前。2. 委托属性Kotlin提供一种委托属性,使用by关键字声明class User {
var name: String by Delegate()
转载
2024-09-13 21:36:19
27阅读
/ 前言 /
这是一个带弧形的进度条,其实这个控件很久之前已经实现了,但是我想用Kotlin去重写优化一遍,并且对此铺开来讲解。
项目的Github地址:
https://github.com/TanJiaJunBeyond/Circula
1.前置知识在Kotlin中,函数是一等公民,它也是有自己的类型的。比如()->Unit,函数类型是可以被存储在变量中的。Kotlin中的函数类型形如:()->Unit、(Int,Int)->String、Int.(String)->String等。它们有参数和返回值。最后一个Int.(String)->String比较奇怪,它表示函数类型可以有一个额外的接收者类型