官网介绍:https://developer.android.com/kotlin/coroutines一、协程的概念协程(Coroutines)是一种并发设计模式,可以在 Android 平台上使用它来简化异步执行的代码。 协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务.二、协程的特点协程是在 Android
转载
2023-09-11 21:44:05
140阅读
简介在项目中,经常会遇到这样的场景:1. 页面消失,网络请求依然存在,不光占用内存,而且还会导致内存泄露,久而久之占用内存越来越大,越来越卡。2. 异步网络请求一大堆的CallBack,让你不得不多写N段代码。现在好了,下面通过对Retrofit的扩展,让你摆脱这些痛苦框架设计
框架图
如图:拓展Retrofit实现LifecycleObserver接
# 在Android中实现协程与Retrofit的指南
协程是Kotlin中一种用于简化异步编程的方式,而Retrofit则是用于网络请求的一个非常流行的库。结合这两者,你可以有效地处理网络操作。本篇文章将带领你一步一步实现使用协程和Retrofit进行网络请求的功能。
## 整体流程
在实现“Android协程Retrofit”之前,我们先了解一下整个实现流程。下表展示了实现的步骤:
|
解决异步的其中一个办法是“协程”;意思是多个线程互相合作,完成异步任务;function* asyncJob() {
// ...其他代码
var f = yield readFile(fileA);
// ...其他代码
}一、协程的运行流程大致:协程A开始执行;协程A执行到一半,进入暂停,执行权转移到协程B;(一段时间后),协程B交换执行权;协程A恢复执行。上面代码的函数async
转载
2023-09-19 17:27:54
58阅读
flow 介绍之前介绍的启动协程方法,比如 launch、async 都是协程的单次启动。如果有复杂场景,比如发送多个数据,就需要使用 flow 数据流。在 flow 中,数据如水流一样经过上游发送,中间站处理,下游接收。创建 flow创建 flow 有 3 种方式:flow{}flowOf()asFlow()flowflow{} 中使用 emit 发送数据。fun flowEmit() = ru
Retrofit2简单使用1,添加依赖2,新建javabean类,解析并保存请求到的数据3,新建java接口,实现请求4,使用Retrofit完成Get请求1,初始化Retrofit获取请求对象2,请求回调,获取请求成功或失败的数据5,注解说明网络请求方法网络请求完整的url@HTTP标记6,网络请求参数1,作用在请求接口的方法上2.请求参数说明@Header & @Headers@Bo
转载
2023-08-07 12:09:45
136阅读
协程coroutine一、基本概念1.1、什么是协程定义即cooperation routine,协程基于线程,它是轻量级线程解决什么问题1、处理耗时任务,这种任务常常会阻塞主线程。 2、保证主线程安全,即确保安全地从主线程调用任何suspend函数。原理协程让异步逻辑同步化,杜绝回调地狱。 协程最核心的点就是,函数或者一段程序能够被挂起,稍后再在挂起的位 置恢复。1.2、协程与异步任务对比示例:
转载
2023-08-17 16:51:02
843阅读
在我们使用Retrofit 1.9时,我的同事创建了以下public class SomeApiCallAction {private Subscription subscription;private NoInternetConnectionInterface noInternetConnectionInterface;public interface NoInternetConnectio
转载
2023-09-26 17:20:30
47阅读
一、概述Kotlin的协程很好用,相信大家都用上了,也觉得很香,这不,Retrofit在最近的几个版本中就支持了协程,更加方便我们处理网络请求。这里不说协程的用法,我比较好奇Retrofit是怎么识别并处理我们写的suspend方法,下面就以retrofit:2.8.1的版本来看看究竟是如何实现的。二、java眼中的suspend在研究Retrofit代码之前,我们先看一个问题,kotlin完全兼
转载
2023-11-23 16:26:00
47阅读
如遇图片无法查看请点击此链接retrofit源码分析笔记(一)上一篇我们分析了最简单的retrofit用法,其实只需要添加合适的CallAdapter就可以结合LiveData,和Rxjava。 这篇文章主要是介绍Retrofit是怎么适配Kotlin协程的。 首先我们看一下Retrofit适配协程的写法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YxM85ka
转载
2023-11-25 20:12:53
27阅读
本系列文章Android 上的协程(第一部分):了解背景Android 上的协程(第二部分):入门Android上的协程 (第三部分): 实际应用Android 上的协程(第二部分):入门背景回顾在第一部分中,我们探讨了协程擅长解决的问题。回顾一下,协程是解决两个常见编程问题的好方法:长时间运行的任务是花费太长时间阻塞主线程的任务。Main-safety允许您确保可以从主线程调用任何挂起函数。 为
转载
2023-07-05 12:11:54
256阅读
前面两篇文章介绍了协程的一些基本概念和基本知识,这篇则介绍在Android中如何使用协程配合Retrofit发起网络请求,同时介绍在使用协程时如何优雅的取消已经发起的网络请求。需要文章中demo完整代码的同学可以私我。创建CoroutineScope在前面的文章中我写到CoroutineScope.launch方法是一个很常用的协程构建器。因此使用协程必须先得创建一个CoroutineScope对
转载
2023-08-31 16:24:49
99阅读
文章目录引言实战1、引入开源库2、简单封装3、开始使用MVP架构模式MVVM架构模式 看[这里]() 引言目前做APP网络API请求Retrofit+OkHttp+Kotlin协程应该是比较流行的,相比之前Retrofit+RxJava 有了太多的优势,Rx可以做的事情,协程一样可以做,而且可以做到更方便,更简洁。还不会用协程的童鞋可以看下这篇[Kotlin:玩转协程],接下来我们进行网络请求框
转载
2023-09-29 19:11:08
11阅读
这篇文章不是用来讲概念的, 只是用来谈论一些关于Android 进程\协程那些问题1. android 子线程中的异常会引发crash闪退吗?答案是会的Thread{
throw RuntimeException("this is a error")
}.start()异常21741 2379 E AndroidRuntime: java.lang.RuntimeException: this
转载
2023-09-25 08:59:44
62阅读
Android 上的 Kotlin 协程协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。在 Android 上,协程有助于管理长时间运行的任务,如果管理不当,这些任务可能会阻塞主线程并导致应用无响应。使用协程的专业开发者中有超过 50% 的人反映使用协程提高了工作效率。本主题介绍如何
转载
2023-09-22 20:23:46
39阅读
文章目录CoroutineScope 协程作用域Job 工作任务CoroutineContext 协程上下文Job 生命周期父 CoroutineContext 说明 本系列博客文章深入探讨了协程中的取消和异常。取消对于避免做多余的工作很重要,这会浪费内存和电量;正确的异常处理是良好用户体验的关键。作为本系列其他 3 部分(第 2 部分:取消,第 3 部分:异常,第 4 部分:不应取消的工作的
今天我们来聊聊Kotlin的协程Coroutine。如果你还没有接触过协程,推荐你先阅读这篇入门级文章What? 你还不知道Kotlin Coroutine?如果你已经接触过协程,但对协程的原理存在疑惑,那么在阅读本篇文章之前推荐你先阅读下面的文章,这样能让你更全面更顺畅的理解这篇文章。Kotlin协程实现原理:Suspend&CoroutineContext如果你已经接触过协程,相信你都
文章目录golang常用库之-ants包 | golang协程池(goroutine池)背景什么是ants? 使用demo官方demo golang常用库之-ants包 | golang协程池(goroutine池)背景使用go关键字就可以方便快捷的创建一个goroutine,受限于服务器硬件内存大小,如果不对goroutine数量进行限制,会出现Out of Memory错误。通过协程池限制g
文章目录前言**一、retrofit2.6.0之前使用步骤**1.引入库2.创建接收服务器返回数据的类(根据具体数据对应)3.定义描述网络请求的接口4.创建retrofit实例及接口实例创建函数5.发送网络请求6.调用封装为LiveData()数据**二、retrofit2.6.0之后使用步骤**1.导入依赖2.创建接收服务器返回数据的类(根据具体数据对应)3.定义描述网络请求的接口4.创建re
转载
2023-11-03 23:04:24
90阅读
# Android MVVM with Coroutines, Retrofit2, and OkHttp
In this article, we will discuss how to implement an Android application using the MVVM architecture pattern along with Coroutines for asynchrono