草庐IT

kotlin协程

全部标签

java - 正确使用协程

我是第一次实现协程。我正在为一个简单的登录应用程序遵循MVP模式。这是我的代码流程-点击的登录按钮会遵循这个方向-LoginFragment->LoginPresenter->Repository->APIRepository->RetrofitInterface登录响应将遵循这个方向-RetrofitInterface->APIRepository->Repository->LoginPresenter->LoginFragment这是代码-RetrofitInterface.kt@POST("login")funloginAPI(@BodyloginRequest:LoginReq

android - 将 Java 转换为 Kotlin 错误后执行代码

在我来这里之前,我已经尝试在StackoverFlow上查找这个问题是否存在。我尝试将Java类转换为Kotlin但AndroidStudio做得不太好。我尝试手动完成,但没有成功。这是Java中的原始代码privatestaticvoidappendHex(StringBuffersb,byteb){sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f));}这里是AndroidStudio转换后的代码privatefunappendHex(sb:StringBuffer,b:Byte){sb.append(HEX[b

Android Failed to invoke getAdditionalVisibleSourceSets on org.jetbrains.kotlin.gradle.plugin.source

一、错误内容[ReflectionError]FailedtoinvokegetAdditionalVisibleSourceSetsonorg.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetjava.lang.NoSuchMethodException:org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet.getAdditionalVisibleSourceSets() atjava.base/java.lang.Class.getMeth

android - PublishSubject 与 Kotlin 协程(流程)

我使用了PublishSubject,我正在向它发送消息,同时我也在监听结果。它运行完美,但现在我不确定如何使用Kotlin的协程(流或channel)做同样的事情。privatevalsubject=PublishProcessor.create>()...funsomeMethod(b:Boolean){subject.onNext(b)}funobserve(){subject.debounce(500,TimeUnit.MILLISECONDS).subscribe{/*valuereceived*/}}因为我需要debounce运算符,所以我真的想对流做同样的事情,所以我创建

android - 异常未被协程捕获

我似乎无法在协程中完成错误处理。我一直在阅读很多文章和exceptionhandlingdocumentation但我似乎无法让它工作。这是我的设置:我的ViewModel启动协程及其作用域classMyViewModel(privatevarmyUseCase:MyUseCase):ViewModel(){privatevalviewModelJob=Job()privatevaluiScope=CoroutineScope(Dispatchers.Main+viewModelJob)fundoSomething(){uiScope.launch{try{myUseCase()}ca

android - 如何在 Kotlin 的枚举中检索用 vararg 声明的参数的值

我是Kotlin的新手,我有一个包含许多值的枚举,这些值指的是我的应用程序具有的不同状态。现在我需要在应用程序进入某个状态时记录一些内容,但枚举中的某些状态可以记录不止一件事(基于来自应用程序外部的其他参数),而某些状态不需要记录一些内容。这是我的枚举:enumclassStateName(vararglog:String){FIRST_CONNECTION(),//noparameterhereAUTHORIZATION_CHECK("message1","message2"),HANDSHAKE_SUCCESS("message")//...}如果用一个强制性参数StateName

【Android】RecycleView 将指定item滚动置顶(kotlin)

一、RecyclerView本身提供的定位方法说明//滑动到适配器指定位置(position:item的index)smoothScrollToPosition(position)//使指定的item平滑滚动到屏幕中//说明://情况1:指定item在可见范围外时,则滑动到可见范围//情况2:指定item在可见范围内时,则不会滑动recycleview.smoothScrollToPosition();二、实现思路item有三种情况:情况1:在可见范围之前item在第一个可见item之前,直接用smoothScrollToPosition,则当该item移动到可见范围时,它就在Recycler

Go语言入门12(协程 goroutine)

协程进程和线程进程​ 当运行一个应用程序的时候,操作系统会为这个应用程序启动一个进程。可以将这个进程看作一个包含了应用程序在运行中需要用到和维护的各种资源的容器。这些资源包括但不限于内存地址空间、文件和设备的句柄以及线程线程​ 一个线程是一个执行空间,这个空间会被操作系统调度来运行函数中所写的代码。每个进程至少包含一个线程,每个进程的初始线程被称作主线程。因为执行这个线程的空间是应用程序的本身的空间,所以当主线程终止时,应用程序也会终止。操作系统将线程调度到某个处理器上运行,这个处理器并不一定是进程所在的处理器并发和并行并发​ 并发是指在一个逻辑处理器同时管理很多事情,这些事情可能只做了一半就

Android Kotlin Mvp 类委托(delegate)

所以我有以下场景:classNowActivity:AppCompatActivity(),NowScreen,NowDelegatebyNowDelegateImpl(){onCreate(...){presenter.attachView(this)}有什么方法可以将某些NowScreen方法的实现委托(delegate)给NowDelegate,这样我就可以在演示者内部执行以下操作:view.callSomeFunc()其中callSomeFund()是在NowDelegate中实现的。有什么办法可以完成这样的事情吗?问题是我正在使用MVP,它将View附加到演示者。但是一些Vi

java - 无法使用 Kotlin 在项目中设置 Realm

我正在尝试使用Realm在Kotlin中构建一个测试项目。这是我的模型:openclassBook:RealmObject(){//Standardgetters&settersgeneratedbyyourIDE…@PrimaryKeyopenvarid:Long=0openvartitle=""openvardescription=""openvarauthor=""openvarimageUrl=""}这是我得到的异常:FATALEXCEPTION:mainProcess:app.androidhive.info.realm,PID:18782java.lang.RuntimeE