草庐IT

android - 协程上下文自定义getter

我正在研究1.0.0发布后与Android相关的kotlin协程。我发现了很多通过创建父作业并在onCleared中清除它或在onCreate中创建作业并清除作用域Activity来制作作用域ViewModel(来自架构组件)的示例在onDestroy中(与onResume和onPause相同)。在一些示例中,我遇到了这个代码结构(取自officialdocs):overridevalcoroutineContext:CoroutineContextget()=Dispatchers.Main+job当我们从这个范围启动一个新的协程时,这个自定义的getter是否一直被调用?不好吗?也

android - 如何在 Kotlin 中编写一系列 promise ?

是否可以写出promise的序列?(或任务)仅使用Kotlin?例如,JavaScript中的一个序列promise写成:constSLEEP_INTERVAL_IN_MILLISECONDS=200;constalpha=functionalpha(number){returnnewPromise(function(resolve,reject){constfulfill=function(){returnresolve(number+1);};returnsetTimeout(fulfill,SLEEP_INTERVAL_IN_MILLISECONDS);});};constbra

android - 当我在 Kotlin 中使用 Anko 时,如何为 SQLite 的表定义一个非空字段?

我希望在Kotlin中使用Anko时为SQLite的表定义一个notnull字段。但是DBRecordTable.CategorytoTEXTNOTNULL是错误的,我该如何解决?代码implementation"org.jetbrains.anko:anko-sqlite:$anko_version"overridefunonCreate(db:SQLiteDatabase){db.createTable(DBRecordTable.TableNAME,true,DBRecordTable._IDtoINTEGER+PRIMARY_KEY+AUTOINCREMENT,DBRecord

android - 使用 Android SmsRetrieverClient 不解析消息的 SMS 验证

尝试按照此处的步骤实现短信自动阅读以进行验证:https://developers.google.com/identity/sms-retriever/request1)声明lateinitvarsmsRetrieverClient:SmsRetrieverClientprivatelateinitvarsmsReceiver:SmsBrReceiver2)在登录ActivityonCreate中初始化并注册它们smsRetrieverClient=SmsRetriever.getClient(this)smsReceiver=SmsBrReceiver()valintentFilte

android - 如何从先前生成的 ECDSA 编码 key 对构造私钥?

像这样生成私钥:fungetKeyPair():Pair{Security.addProvider(provider)valgenerator=KeyPairGenerator.getInstance("ECDSA")valecSpec=ECNamedCurveTable.getParameterSpec("secp256r1")generator.initialize(ecSpec)valkeyPair=generator.generateKeyPair()valpublicKey=keyPair.publicasECPublicKeyvalprivateKey=keyPair.pr

android - 电子邮件地址已被另一个帐户使用(使用电子邮件/密码 Firebase 进行身份验证)

我正在使用来自Firebase的电子邮件/密码验证。我处理异常消息。我首先注册,然后进入登录Activity,但是当我写电子邮件时,我注册了它..我无法登录并收到此错误“该电子邮件地址已被另一个帐户使用”。在Firebase面板中,我有通过它注册的电子邮件,但我无法使用它登录。这也是我的代码...首先用于注册:privatelateinitvarfirebaseAuth:FirebaseAuth/*FirebaseAuth*/firebaseAuth=FirebaseAuth.getInstance()/*RegisterWithFirebaseAuth*/funonRegisterB

android - kapt3 构建生成的错误

这是我的gradle的样子//DaggerDIimplementation'com.google.dagger:dagger:2.10'kapt'com.google.dagger:dagger-compiler:2.10'compileOnly'org.glassfish:javax.annotation:10.0-b28'//Retrofit&OkHttpimplementation'io.reactivex.rxjava2:rxandroid:2.0.2'implementation'io.reactivex.rxjava2:rxjava:2.1.12'implementatio

android - 使用协程在进行网络调用时更新 UI

我试图在使用协程进行网络调用时显示微调器。在itemsFromRepo调用返回之前,UI似乎不显示LOADING_ITEMS状态(微调器),然后微调器显示一瞬间,然后显示项目。我的印象是,因为它在协程中,状态将设置为LOADING_ITEMS,项目将被清除,网络调用将在微调器显示在UI上时在后台进行。然后当网络调用完成时,协程将继续运行并设置项目然后状态。这是使用协程的正确方法吗?还有范围,我认为这是我几个月前玩过的实验性协程的新内容。//ViewModel.ktenumclassState{LOADING_ITEMS,SELECTING_ITEM}varstate=Observabl

android - Moshi 适配器跳过 List<T> 中的坏对象

我使用Moshi,但我需要用有缺陷的后端来解决我的问题。有时,当我请求对象列表时,其中一些不包含必填字段。当然,我可以捕获并处理JsonDataException,但我想跳过这些对象。我怎样才能用Moshi做到这一点?更新我有几个模型可以完成我的任务@JsonClass(generateAdapter=true)dataclassUser(valname:String,valage:Int?)@JsonClass(generateAdapter=true)dataclassUserList(vallist:List)和错误的JSON{"list":[{"name":"John","ag

java - 正确使用协程

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