草庐IT

kotlin协程

全部标签

【28】Kotlin语法进阶——使用协程编写高效的并发程序

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。文章目录一、Kotlin中的协程1.1协程的基本用法1.1.1协程与协程作用域1.1.2使用launch函数创建子协程1.1.3通过suspend关键声明挂起函数1.1.4coroutineScope函数1.2更多的作用域构建器1.2.1项目中创建协程的常用方法1.2.2获取协程的返回值1.2.3withContext函数一、Kotlin中的协程协程是Kotlin语言中很有代表性的一种并发设计模式,用于简化异步执行的代码。协程和线程有点类似,可以简单地将它理解成一种轻量级的线程。我们前面学习的线程是属于重量级的,这是

Kotlin 枚举类

使用enum修饰符;每个枚举常量都是一个对象,枚举常量以逗号分隔//枚举类enumclassDirection{NORTH,SOUTH,WEST,EAST}//每一个枚举都是枚举类的实例,所以可以这样初始化enumclassColor(valrgb:Int){RED(0xFF0000),GREEN(0x00FF00),BLUE(0x0000FF)}枚举常量可以声明其带有相应方法以及覆盖了基类方法的自身匿名类 enumclassProtocolState{WAITING{overridefunsignal()=TALKING},TALKING{overridefunsignal()=WAITIN

kotlin by lazy 的使用

bylazy的作用by是在kotlin中代表者委托,lazy懒加载bylazy就是委托延时处理下面写一个demo说明下新建一个类classExportController{fungetName():String?{return"name";}fungetAge():Int{return18;}}在mian中如下classMainActivity:ComponentActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.

android - Kotlin 中的字符串到位图

我是Kotlin的新手,我似乎无法解决这个问题。我得到一个base64String,我需要一张图片。我做到了:valimageBytes=string.toByteArray().//stringisthebase64imagevalimage=BitmapFactory.decodeByteArray(imageBytes,0,imageBytes.size)问题是,当我尝试访问image时,我在日志中收到一条SkAndroidCodec::NewFromStreamreturnednull消息。我想在一个有返回值的方法中使用它,但它一直在returnimage上崩溃。如何正确转换?

android - 从 Kotlin Anko 中的两个表中选择数据

在我的数据库中,有两个表,1)Task:(id(INTEGER+PRIMARY_KEY),title,description,timestamp,category_id(ForeignkeyofCategory->id))2)Category:(id(INTEGER+PRIMARY_KEY),name)要从表中选择数据,Anko提供了如下方法:varmDatabase:DatabaseManager=DatabaseManager.getInstance(activity)varmResult:List=ArrayList()mDatabase.use{mResult=select(T

Android kotlin onTouchListener 要我覆盖 performClick()

我试图消除AndroidStudio希望我的onTouchListener覆盖我所做的performClick的警告,但警告仍然存在。draggableBar!!.setOnTouchListener(View.OnTouchListener{view,motionEvent->when(motionEvent.getAction()){MotionEvent.ACTION_DOWN->{}MotionEvent.ACTION_UP->{view.performClick()}}return@OnTouchListenertrue})这可能是AndroidStudio错误还是我做错了什

android - Kotlin dagger 2 Android ViewModel注入(inject)错误

我正在尝试在我的Android应用程序上使用dagger2从archandroid库中注入(inject)新的ViewModel。从我在这个样本上看到的https://github.com/googlesamples/android-architecture-components/tree/e33782ba54ebe87f7e21e03542230695bc893818/GithubBrowserSample我需要使用这个:@MustBeDocumented@Target(AnnotationTarget.FUNCTION,AnnotationTarget.CONSTRUCTOR,An

java - 测试包不读取主包中定义的 Kotlin 类

我似乎无法访问AndroidStudio项目中我的Kotlin模块中测试包中的主要类。请注意,下面显示的所有代码都在导入到Android应用程序中的KotlinJVM模块中。这是我的src/main/java代码:importcom.google.gson.annotations.SerializedNamedataclassCustomer(valpassword1:String,valpassword2:String,@SerializedName("last_name")vallastName:String,@SerializedName("first_name")valfirs

Android Room 库错误 : Cannot find setter for field. (Kotlin)

我正在使用房间图书馆,我有下面提到的实体:@Parcelize@Entity(tableName="tb_option")dataclassOptionsTable(varquestion_id:Int?=null,varoption_id:Int?=null,varoption:String?=null,varis_selected:Int?=null,@PrimaryKey(autoGenerate=true)varsr_no:Int=0):Parcelable如您所见,我将所有字段声明为var但它仍然显示错误:error:Cannotfindsetterforfield.e:e:

android - Kotlin 覆盖抽象 val 行为,对象与类

我刚刚开始使用并开始弄乱抽象类,覆盖val和singeltons。但是,我刚刚遇到了一个非常奇怪的行为。我的目标是拥有一个抽象类,然后创建几个扩展该抽象类的单体。因为我想要求某些变量,所以我创建了抽象val,然后可以在子类中覆盖它们(而不是通过构造函数传递它们)。所以我有4个类:主要Activity:classMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.a