当前位置: 首页 > news >正文

徐州营销型网站建设龙华网站建设网站设计公司

徐州营销型网站建设,龙华网站建设网站设计公司,河北保定建设集团招聘信息网站,semseo文章目录 官网地址1 来源2 出现原因3 特点1#xff09; 轻量2#xff09;内存泄漏更少3#xff09;内置取消支持4#xff09;Jetpack 集成 4 依赖项信息5 在后台线程中执行6 使用协程确保主线程安全7 处理异常 官网地址 https://developer.android.google.cn/kotlin/corou… 文章目录 官网地址1 来源2 出现原因3 特点1 轻量2内存泄漏更少3内置取消支持4Jetpack 集成 4 依赖项信息5 在后台线程中执行6 使用协程确保主线程安全7 处理异常 官网地址 https://developer.android.google.cn/kotlin/coroutines?hlzh-cn 1 来源 协程是一种并发设计模式您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的它基于来自其他语言的既定概念。2 出现原因 在 Android 上协程有助于管理长时间运行的任务如果管理不当这些任务可能会阻塞主线程并导致应用无响应。使用协程的专业开发者中有超过 50% 的人反映使用协程提高了工作效率。3 特点 1 轻量 您可以在单个线程上运行多个协程因为协程支持挂起不会使正在运行协程的线程阻塞。挂起比阻塞节省内存且支持多个并行操作2内存泄漏更少 使用结构化并发机制在一个作用域内执行多项操作3内置取消支持 取消功能会自动通过正在运行的协程层次结构传播4Jetpack 集成 许多 Jetpack 库都包含提供全面协程支持的扩展。某些库还提供自己的协程作用域可供您用于结构化并发4 依赖项信息 dependencies { implementation(org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9) }5 在后台线程中执行 网络请求发出时阻塞界面线程。如需将执行操作移出主线程最简单的方法是创建一个新的协程然后在 I/O 线程上执行网络请求class LoginViewModel(private val loginRepository: LoginRepository ): ViewModel() {fun login(username: String, token: String) {// Create a new coroutine to move the execution off the UI threadviewModelScope.launch(Dispatchers.IO) {val jsonBody { username: \$username\, token: \$token\}loginRepository.makeLoginRequest(jsonBody)}} }6 使用协程确保主线程安全 使用协程库中的 withContext() 函数将协程的执行操作移至其他线程 由于 makeLoginRequest 将执行操作移出主线程login 函数中的协程现在可以在主线程中执行 login 函数现在按以下方式执行 应用从主线程上的 View 层调用 login() 函数launch 在主线程上创建新协程然后协程开始执行在协程内调用 loginRepository.makeLoginRequest() 现在会挂起协程的进一步执行操作直至 makeLoginRequest() 中的 withContext 块结束运行withContext 块结束运行后login() 中的协程在主线程上恢复执行操作并返回网络请求的结果 7 处理异常 为了处理 Repository 层可能抛出的异常请使用 Kotlin 对异常的内置支持。在以下示例中我们使用的是 try-catch 块 class LoginViewModel(private val loginRepository: LoginRepository ): ViewModel() {fun makeLoginRequest(username: String, token: String) {viewModelScope.launch {val jsonBody { username: \$username\, token: \$token\}val result try {loginRepository.makeLoginRequest(jsonBody)} catch(e: Exception) {Result.Error(Exception(Network request failed))}when (result) {is Result.SuccessLoginResponse - // Happy pathelse - // Show error in UI}}} }
http://www.pierceye.com/news/507278/

相关文章:

  • 青岛注册公司网站建网站需要那些步骤
  • 深圳做网上商城网站小蘑菇网站建设软件
  • 广州住建网站网站空间购买价格
  • 金华永康网站建设公司做网站的优点
  • 有免费的微网站制作吗瑞安哪里有培训做网站的
  • 苏州住房和城乡建设局网站wordpress中文书
  • 盐城市滨海县建设局网站wordpress 4.8.1 漏洞
  • 荆州市城市建设投资开发有限公司网站百度人工服务24小时
  • 永久域名购买昆明网站建设优化企业
  • 自适应网站模板下载网页设计培训哪好
  • 做门窗网站便宜的vps租用网站
  • 龙岗附近公司做网站建设多少钱公司行业类型有哪些
  • 188旅游网站管理系统源码做外贸有那些网站平台
  • 江苏网站建设要多少钱近三个月以来的国际新闻
  • 旬阳做网站免费漫画软件
  • asp相册网站源码企业网站建设的上市公司
  • 做网站和软件哪个挣钱国家企业信用信息公示系统山西
  • 做网站前的准备什么二建证考试需要什么条件
  • 男女做a视频网站asp单页网站源码
  • 手机页面网站模板怎么卖做淘宝保健品药品在哪个网站找素材
  • 青县建设银行网站百度投广告怎么收费
  • 广州天河做网站河南建筑工程信息网官网
  • 展示型网站怎么做响应式网站导航栏内容
  • 建设实验教学网站的作用电脑前端主要做什么
  • 搭建租号网的网站网站收录了没有排名
  • 商城网站前期准备seo优化能提高网站的流量吗
  • 时间轴网站代码免费的wordpress
  • 合肥网站推广公司制作微信的网站有哪些
  • 低价网站建设方案网站做框架
  • 企业网站建设平台的分析网站建设产品