技术标签: android kotlin Android 开发语言
1- 协程是我们在 Android 上进行异步编程的推荐解决方案。它的特点包括:
2- 创建协程
// 方法一,使用 runBlocking 顶层函数
runBlocking {
get(url)
}
// 方法二,自行通过 CoroutineContext 创建一个 CoroutineScope 对象,通过launch开启协程
val coroutineScope = CoroutineScope(context)
coroutineScope.launch {
get(url)
}
// 方法三,使用 GlobalScope 单例对象,GlobalScope 实际是CoroutineScope的子类,本质是CoroutineScope
GlobalScope.launch {
get(url)
}
//方法四,使用async开启协程
GlobalScope.async {
get(url)
}
3-协程使用
协程最常用的功能是并发,而并发的典型场景就是多线程。
可以使用 Dispatchers.IO
参数把任务切到 IO 线程执行
coroutineScope.launch(Dispatchers.IO) {
...
}
使用Dispatchers.Main
切换到主线程
coroutineScope.launch(Dispatchers.Main) {
...
}
4-协程的挂起(suspend)
try/catch
或者runCatching
内置函数来处理CoroutineExceptionHandler
1-定义
高阶函数定义:参数有函数类型或者返回值是函数类型的函数。
2-高阶函数示例
(String, Int) -> Unit
3-高阶函数有三种用法
4-系统常用的高阶函数
1- 基本介绍:
2- 使用场景
3-区别
函数 | 是否是扩展函数 | 函数参数(this、it) | 返回值(调用本身、最后一行) |
---|---|---|---|
with | 不是 | this | 最后一行 |
T.run | 是 | this | 最后一行 |
T.let | 是 | it | 最后一行 |
T.also | 是 | it | 调用本身 |
T.apply | 是 | this | 调用本身 |
Zxing包中有个类CameraManager,它是来设置扫描框的大小
扫描框框初始化数值
private static int MIN_FRAME_WIDTH = 240;
private static int MIN_FRAME_HEIGHT = 240;
private static int MAX_FRAME_WIDTH = 480;
private static int MAX_FRAME_HEIGHT = 360;
此类里面有个getFramingRect方法用来设置扫描的框的大小,如果要修改扫描框的大小可以在这个方法里修改
%s:字符串类型
%d:整数类型
%f:浮点数类型
OkHttp拦截器链
Jetpack 是一个丰富的组件库,它的组件库按类别分为 4 类
1-架构(Architecture)
2- 界面(UI)
3-行为(behavior)
4-基础(foundation)
ConstraintLayout 是一个 ViewGroup,它的出现是为了解决复杂布局时,布局嵌套(布局内的布局)过多的问题(嵌套布局会增加绘制界面所需的时间)。它可以根据同级视图和父布局的约束条件为每个视图定义位置,类似于 RelativeLayout 所有视图都是根据兄弟视图和父级布局之间的关系来布局的,但是与 RelativeLayout 相比,它更加灵活,更易于使用
结合项目描述
文章浏览阅读5.6k次。利用 CSS3 @font-face 规则指定名为"myFirstFont"的字体,并指定在哪里可以找到它的URL:@font-face{font-family: myFirstFont;src: url('Sansation_Light.ttf'), url('Sansation_Light.eot'); /* IE9 */}在main.js中全局引用文件import '@/styles/index.scss'解决字体文件过大问题Fontmin - 字体子集化方案_vue 引入字体包体积过大
文章浏览阅读551次。一、用HLS生成一个定制IP(加速器)(1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。 (3)在左侧的..._定制pynq的overlay
文章浏览阅读2w次,点赞28次,收藏76次。初学roketMQ的同学可能会比较难以理解这四者之间的关系,这里我来理一下。1、消费者和消费者属于个体与群体的关系,非常容易理解,不赘述2、Topic是相当于一种消息类型,而队列queue则是属于某个Topic下的更细分的一种单元。举个例子。Topic代表老虎,是一种动物类型,而队列就相当于东北虎,是对老虎的更详细描述。3、在同一个消费者组下的消费者,不能同时消费同一个queue。4、一个消费者组下的消费者,可以同时消费同一个Topic下的不同队列的消息。5、不同消费者组下的消费者,可以同时._rocketmq topic和queue关系
文章浏览阅读229次。MySQL增删改查之删_delete-truncate一、DELETE语句删除数据记录1、在单表中删除行语法:DELETE [IGNORE] FROM tbl_name[WHERE where_condition][ORDER BY ...][LIMIT row_count]①从表中删除满足WHERE条件的所有行;②没有WHERE条件,则删除表中的所有行基本格式:delete from wh..._mysql truncate 某行数据
文章浏览阅读2.2k次。摘要:昇腾AI计算解决方案以极致算力,端边云融合、全栈创新,开放生态的硬核实力。用户可以使用标准的Matrix接口实现业务引擎,对外释放昇腾AI加速能力。从卷积神经网络中的矩阵乘法(GEMM)说起说起AI业务,就不得不提最经典的AlexNet,AlexNet模型于2012年提出,其被认为是计算机视觉领域最有影响力的模型之一。AlexNet网络主要包含八层,前五层是卷积层,最后三层是全连接层。 配合pooling及norm运算,以下列出所有卷积层和全连接层的参数规模以及每层的浮点计算量,从图..._华为云升腾云服务器实例可以用于推理加速的是
文章浏览阅读932次。实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号同时会推送最新的比赛消息,欢迎关注!近期CompHub对进行中的比赛增加了的识别,你可以直接在CompHub中浏览当前可报名的比赛, 而不用进入比赛主页才知道比赛的报名状态。本账号将会不定期推送当前可报名的比赛,方便大家查阅。 enjoy it!上期推送了,本期推送「创新应用」、「可视化」和「程序设计」这三个类别当前可报名的大奖赛。更多比赛信息见或 点击文末以下信息仅供参考,以比赛官网为准。_程序软件创新比赛
文章浏览阅读1.7k次。一个专注PR剪辑视频的PR模板网站(PRmuban.com)提供PR模板,PR素材,PR转场特效,PR调色LUT预设,PR剪辑教程,PR模板网站,Pr字幕模板,pr片头模板,视频模板,视频素材,剪辑素材,抖音素材,免费下载,Premiere软件资源库,mogrt,pr插件免费下载网站官网直达:https://prmuban.com/...
文章浏览阅读4.3k次,点赞5次,收藏10次。setting中配置: "latex-workshop.latex.autoClean.run": "onBuilt", //注意结尾是 t 不是 d "latex-workshop.latex.clean.fileTypes": [ "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof"..._latex aux会自动删除
文章浏览阅读113次。2019独角兽企业重金招聘Python工程师标准>>> ..._spring boot+spring data jpa+spring security+freemarker+vue+jquery
文章浏览阅读4.9k次,点赞3次,收藏27次。01 Android开发工具Android StudioAndroid Studio是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA.类似Eclipse ADT, Android Studio提供了集成的Android开发工具用于开发和调试架构组成。基于Gradle的构建支持。Android专属的重构和快速修复。提示工具以捕获性能、可用性、版本兼容性等问题..._android studio模拟器安装教程
文章浏览阅读6.5k次,点赞4次,收藏22次。IIS安装和配置_iis安装配置步骤
文章浏览阅读8.8k次,点赞3次,收藏2次。mongodb启动报错: MongoDB shell version: 3.2.20 connecting to: test 2018-08-10T19:26:24.102+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reas..._error: couldn't connect to server 127.0.0.1:27017, connection attempt failed