- kotlin与MVVM结合使用总结(一)
每次的天空
kotlin开发语言android
一、Kotlin与MVVM结合的核心优势代码简洁性数据类(dataclass)简化Model层定义,自动生成equals/hashCode/toString扩展函数简化View层逻辑(如点击事件扩展)lateinit/bylazy优化ViewModel属性初始化异步处理优化协程(Coroutines)替代RxJava,轻量且代码可读性强withContext(Dispatchers.IO)切换线程
- Kotlin 流 倒计时
安果移不动
#038Composekotlinandroid开发语言
funcountDownCoroutines(total:Int,onTick:(Int)->Unit,onStart:(()->Unit)?=null,onFinish:(()->Unit)?=null,):Job{returnflow{for(iintotaldownTo0){emit(i)delay(1000)}}.flowOn(Dispatchers.Main).onStart{onSta
- SpringMVC的执行流程
sunyunfei1994
理论知识springspringmvc
过去的开发中,视图阶段(老旧JSP等)1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherS
- 【SpringBoot3】Spring 请求处理流程,自定义返回类型处理(HttpMessageConverter)
顽石九变
SpringBoot3.0从入门到精通spring后端springboot请求处理
一、SpringBoot请求处理1、请求处理流程SpringBoot的接口请求处理流程主要基于SpringMVC架构,以下是详细的请求处理流程:客户端发送请求:客户端发送HTTP请求到SpringBoot应用的URL。DispatcherServlet接收请求:SpringBoot应用中的DispatcherServlet拦截所有的请求。HandlerMapping进行映射:DispatcherS
- CoroutineScope Dispatchers.IO异步操作async返回函数,Kotlin
zhangphil
kotlinkotlin
CoroutineScopeDispatchers.IO异步操作async返回函数,Kotlinimportkotlinx.coroutines.*funmyFun(a:Int,b:Int,retFun:(sum:Int)->Unit){println("分支myFun开始...${System.currentTimeMillis()}")valtask=CoroutineScope(Dispat
- kotlin协程
taoyyyy
协程基础轻量级线程。在一个线程中可以启动多个协程。在协程中使用同步方式写出异步代码(协程挂起时不会阻塞线程),解决回调地狱。image.pngGlobalScope.launch(Dispatchers.Main){//开始协程:主线程valresult=userApi.getUserSuspend("suming")//网络请求(IO线程)tv_name.text=result?.name//更
- kotlin协程
Athephoenix
协程是什么协程是一种在程序中处理并发任务的方案,也是这种方案的组件。(adapter)协程和线程属于一个层级的概念协程中不存在线程,也不存在并行kotlinforjava的协程并不属于广义的协程——并行和并发的差别协程代码怎么写GlobalScope.launch(Dispatchers.Main){io1()uio1()io2()uio2()io3()uio3()}suspendfunio1()
- kotlin协程-Android实战,android面试八股文
m0_66264655
程序员架构移动开发android
overridefunonError(t:Throwable?){tv_text.text=“error”}})}//使用协程请求+渲染数据funrequestData2(){GlobalScope.launch(Dispatchers.Main){try{tv_text.text=Gson().toJson(testApi.getLatestNews2())}catch(e:Exception)
- 安卓Module with the Main dispatcher is missing.报错
ffmydream
在使用Dispatchers.Main作为上下文启动协程时报错:E/E:java.lang.IllegalStateException:ModulewiththeMaindispatcherismissing.AdddependencyprovidingtheMaindispatcher,e.g.'kotlinx-coroutines-android'andensureithasthesameve
- 安卓kotlin协程中更新UI
ffmydream
kotlin
button.setOnClickListener{CoroutineScope(Dispatchers.IO).launch{try{valsc=Socket(srvUrl,mPort)sc.soTimeout=10000valos=sc.getOutputStream()valpw=PrintWriter(os)pw.write(textView.text.toString()+"\n")pw
- kotlin协程笔记:Dispatchers
且听真言
KotlinDispatchers
Kotlin的launch会调用startCoroutineCancellable(),接着又会调用createCoroutineUnintercepted(),最终会调用编译器帮我们生成SuspendLambda实现类当中的create()方法。publicfunCoroutineScope.launch(context:CoroutineContext=EmptyCoroutineContex
- kotlin协程(Dispatchers.IO)
凌晨三点的北京
Kotlin源码分析
kotlin协程(Dispatchers.IO)项目调用方式privatesuspendfunupLog(resource_id:String):Boolean{varsuccess=falsewithContext(Dispatchers.IO){//做一些耗时操作,比如请求网络}returnsuccess}源码追踪Dispatchers类,发现是个静态变量@JvmStaticpublicval
- Kotlin 设置和获取协程名称
Ang_qq_252390816
kotlin前端开发语言
1,设置写成名称创建协程作用域是或者创建协程是有个上下文参数(context:CoroutineContext)创建协程作用域CoroutineScope(Dispatchers.IO+CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无源码:publicfunCoroutineScope(context:CoroutineContext):Corou
- kotlin coroutine源码解析之Dispatchers协程调度器
Super-B
kotlin协程coroutinekotlin协程coroutine
目录Dispatchers协程调度器Dispatchers.DefaultDispatchers.IODispatchers.MainDispatchers.Unconfined协程调度器的实现CoroutineScheduler总结Dispatchers协程调度器CoroutineDispatcher,具有用于调度任务的底层执行器。ExecutorCoroutineDispatcher的实例应由
- SpringMVC处理请求的流程
洛语言
servletjava前端
一、SpringMVC中的常用组件DispatcherServlet:前端控制器,不需要工程师开发,由框架提供作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求HandlerMapping:处理器映射器,不需要工程师开发,由框架提供作用:根据请求的url、method等信息查找Handler,即控制器方法Handler:处理器,需要工程师开发作用:在DispatcherS
- kotlin协程CoroutineScope Dispatchers.IO launch 线程Id
zhangphil
kotlin协程kotlin协程
kotlin协程CoroutineScopeDispatchers.IOlaunch线程Idimportkotlinx.coroutines.*funmain(args:Array){println("main线程id:${Thread.currentThread().threadId()}")CoroutineScope(Dispatchers.IO).launch{println("launc
- Kotlin 协程 - 协程调度器 CoroutineDispatcher
Jomurphys
Kotlin协程kotlin
一、概念协程必须运行在一个线程上,所以要指定调度器。是一个抽象类,Dispatcher是一个标准库中帮我们封装了切换线程的帮助类,可以调度协程在哪类线程上执行。创建协程时,上下文如果没有指定也没有继承到调度器,则会添加一个默认调度器(调度器通过ContinuationInterceptor延续体拦截器实现的)。通过Dispatchers调度,而不是Thread因为不是单纯指定线程。二、模式由于子协
- Android的协程(Coroutines)基础概念
超人TIGA
最近学习了下协程,在这里分享一下我自己的理解。1、协程是什么?在定义协程是什么之前,我们应该先知道协程是做什么的,对于项目而言是新增加的东西?还是替换原有的逻辑,从而获得好处?我们先看看coroutines最基础的用法:privatefunrunCoroutines(){GlobalScope.launch(Dispatchers.Main){valdata=getData()//获取网络接口数据
- Kotlin定时器
迪霸LZTXDY
kotlin开发语言android
classMyTimerTask():TimerTask(){overridefunrun(){uiScope.launch{for(iinarray.indices){withContext(Dispatchers.Main){holder.setText(R.id.The_current_value,array[i])}}}}}valtask=MyTimerTask()Timer().sche
- kotlin中的协程使用和原理
A_si
一些问题程序什么时候需要切线程?工作比较耗时:放在后台工作特殊:需要放在指定线程(ui刷新、计算、io)kotlin的协程是什么?线程框架可以用同步代码写出异步操作suspend关键字是什么?并不是切线程关键字用于标记和提醒协程的优势是什么?耗时代码自动后台,提高软件性能线程执行完毕自动切回起始线程协程的使用基本使用用launch()开启一段协程,一般需要指定Dispatchers.Main把要在
- Kotlin协程简述与上下文和调度器(Dispatchers )
Android技术栈
kotlinkotlin开发语言android程序员开发Android开发
协程概述子程序或者称为函数,在所有的语言中都是层级调用,如:A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序是通过栈来实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程看上去是子程序,执行的过程中,在子程序中可中断,去执行其他的子程序,在适当的时候可以回来接着执行。Kotlin协程工作原理Kotlin协程的
- 协程
纳兰沫
摘录自即学即用Kotlin-协程1.概念协程是轻量级的线程,是因为它基于线程池API,所以,处理并发任务这件事上游刃有余协程可以使用阻塞的方式写出非阻塞的代码,触发并发时常见的回调地狱2.使用GlobalScope.launch(Dispatchers.Main){valres=getResult(2)mNumTv.text=res.toString()}GlobalScope是协程的作用域Dis
- Kotlin协程之Dispatchers原理
潇风寒月
Kotlin协程不是什么空中阁楼,Kotlin源代码会被编译成class字节码文件,最终会运行到虚拟机中。所以从本质上讲,Kotlin和Java是类似的,都是可以编译产生class的语言,但最终还是会受到虚拟机的限制,它们的代码最终会在虚拟机上的某个线程上被执行。之前我们分析了launch的原理,但当时我们没有去分析协程创建出来后是如何与线程产生关联的,怎么被分发到具体的线程上执行的,本篇文章就带
- 协程知识点
明飞1987
协程kotlin
协程作用1.协程可以同步的方式去编写异步执行的代码协程可以使用阻塞的方式写出非阻塞式的代码,解决并发中常见的回调地狱协程在写法上和普通的顺序代码类似,同步的方式去编写异步执行的代码GlobalScope.launch(Dispatchers.Main){//开始协程:主线程valresult=userApi.getUserSuspend("suming")//网络请求(IO线程)//耗时阻塞的操作
- Kotlin中使用协程实现异步加载
岁月无痕灬灬
//线程代码块GlobalScope.launch{//异步线程valasync=async{getContactPhone()}//切换主线程withContext(Dispatchers.Main){hello.text=async.await().toString()Log.e("MainActivity",async.await().toString()}}
- Kotlin MutableStateFlow简单使用
wolf0706
kotlin开发语言android
创建接收端varflowCount=-1varstateFlow=MutableStateFlow(flowCount)funinit(){GlobalScope.launch(Dispatchers.IO){stateFlow.collect{}}}发送数据flowCount++stateFlow.value=flowCount不同线程之间数据存在依赖关系可以使用MutableStateFlow
- 奇葩需求系列-距离明天十二点倒计时
南风向北zhy
需求产品中有一个分红领取收益,只限制上午十二点之前领取有效,并且只能领取一次(后台限制)。所以需要一个倒计时,有两种情况:1.今天未超过十二点,eg:11:00倒计时01:00:602.今天已超过十二点,eg:13:00倒计时23:00:60效果图微信图片_20200220101611.png我用的是kotlin,代码如下://倒计时job=launch(Dispatchers.Main){whi
- kotlin 协程之取消协程
咸死的鱼_O
取消作用域会取消它的子协程。被取消的子协程并不会影响其余兄弟协程。协程通过抛出一个特殊的异常CancellationException来处理取消操作。所有kotlinx.coroutines中的挂起函数(withContext、delay等)都是可取消的取消作用域会取消它的子协程valb=runBlocking{valscope=CoroutineScope(Dispatchers.Default
- kotlin用CoroutineScope启动协程async等待结果返回
zhangphil
kotlin协程kotlin协程
kotlin用CoroutineScope启动协程async等待结果返回例如:importkotlinx.coroutines.*objectMyCoroutineScope{privatevalcoroutineContext=Job()+Dispatchers.Default+CoroutineName("my_context")valcoroutineScope=CoroutineScope
- 深入了解SSM框架(案例(SSM+Jsp) + 详细分析 + 思维导图)
咖啡Coffee~
SSMjavamybatismysqlspring
1.SpringSpring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。2.SpringMVCSpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherS
- ztree异步加载
3213213333332132
JavaScriptAjaxjsonWebztree
相信新手用ztree的时候,对异步加载会有些困惑,我开始的时候也是看了API花了些时间才搞定了异步加载,在这里分享给大家。
我后台代码生成的是json格式的数据,数据大家按各自的需求生成,这里只给出前端的代码。
设置setting,这里只关注async属性的配置
var setting = {
//异步加载配置
- thirft rpc 具体调用流程
BlueSkator
中间件rpcthrift
Thrift调用过程中,Thrift客户端和服务器之间主要用到传输层类、协议层类和处理类三个主要的核心类,这三个类的相互协作共同完成rpc的整个调用过程。在调用过程中将按照以下顺序进行协同工作:
(1) 将客户端程序调用的函数名和参数传递给协议层(TProtocol),协议
- 异或运算推导, 交换数据
dcj3sjt126com
PHP异或^
/*
* 5 0101
* 9 1010
*
* 5 ^ 5
* 0101
* 0101
* -----
* 0000
* 得出第一个规律: 相同的数进行异或, 结果是0
*
* 9 ^ 5 ^ 6
* 1010
* 0101
* ----
* 1111
*
* 1111
* 0110
* ----
* 1001
- 事件源对象
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- MySql配置及相关命令
g21121
mysql
MySQL安装完毕后我们需要对它进行一些设置及性能优化,主要包括字符集设置,启动设置,连接优化,表优化,分区优化等等。
一 修改MySQL密码及用户
 
- [简单]poi删除excel 2007超链接
53873039oycg
Excel
采用解析sheet.xml方式删除超链接,缺点是要打开文件2次,代码如下:
public void removeExcel2007AllHyperLink(String filePath) throws Exception {
OPCPackage ocPkg = OPCPac
- Struts2添加 open flash chart
云端月影
准备以下开源项目:
1. Struts 2.1.6
2. Open Flash Chart 2 Version 2 Lug Wyrm Charmer (28th, July 2009)
3. jofc2,这东西不知道是没做好还是什么意思,好像和ofc2不怎么匹配,最好下源码,有什么问题直接改。
4. log4j
用eclipse新建动态网站,取名OFC2Demo,将Struts2 l
- spring包详解
aijuans
spring
下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了。 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。Aspectj是java最早的提供AOP的应用框架。 dist 目录下是Spring 的发布包,关于发布包下面会详细进行说明。 docs&nb
- 网站推广之seo概念
antonyup_2006
算法Web应用服务器搜索引擎Google
持续开发一年多的b2c网站终于在08年10月23日上线了。作为开发人员的我在修改bug的同时,准备了解下网站的推广分析策略。
所谓网站推广,目的在于让尽可能多的潜在用户了解并访问网站,通过网站获得有关产品和服务等信息,为最终形成购买决策提供支持。
网站推广策略有很多,seo,email,adv
- 单例模式,sql注入,序列
百合不是茶
单例模式序列sql注入预编译
序列在前面写过有关的博客,也有过总结,但是今天在做一个JDBC操作数据库的相关内容时 需要使用序列创建一个自增长的字段 居然不会了,所以将序列写在本篇的前面
1,序列是一个保存数据连续的增长的一种方式;
序列的创建;
CREATE SEQUENCE seq_pro
2 INCREMENT BY 1 -- 每次加几个
3
- Mockito单元测试实例
bijian1013
单元测试mockito
Mockito单元测试实例:
public class SettingServiceTest {
private List<PersonDTO> personList = new ArrayList<PersonDTO>();
@InjectMocks
private SettingPojoService settin
- 精通Oracle10编程SQL(9)使用游标
bijian1013
oracle数据库plsql
/*
*使用游标
*/
--显示游标
--在显式游标中使用FETCH...INTO语句
DECLARE
CURSOR emp_cursor is
select ename,sal from emp where deptno=1;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
begin
ope
- 【Java语言】动态代理
bit1129
java语言
JDK接口动态代理
JDK自带的动态代理通过动态的根据接口生成字节码(实现接口的一个具体类)的方式,为接口的实现类提供代理。被代理的对象和代理对象通过InvocationHandler建立关联
package com.tom;
import com.tom.model.User;
import com.tom.service.IUserService;
- Java通信之URL通信基础
白糖_
javajdkwebservice网络协议ITeye
java对网络通信以及提供了比较全面的jdk支持,java.net包能让程序员直接在程序中实现网络通信。
在技术日新月异的现在,我们能通过很多方式实现数据通信,比如webservice、url通信、socket通信等等,今天简单介绍下URL通信。
学习准备:建议首先学习java的IO基础知识
URL是统一资源定位器的简写,URL可以访问Internet和www,可以通过url
- 博弈Java讲义 - Java线程同步 (1)
boyitech
java多线程同步锁
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。
同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(cri
- java-给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
bylijinnan
java
public class DeleteExtraSpace {
/**
* 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
* 方法1.用已有的String类的trim和replaceAll方法
* 方法2.全部用正则表达式,这个我不熟
* 方法3.“重新发明轮子”,从头遍历一次
*/
public static v
- An error has occurred.See the log file错误解决!
Kai_Ge
MyEclipse
今天早上打开MyEclipse时,自动关闭!弹出An error has occurred.See the log file错误提示!
很郁闷昨天启动和关闭还好着!!!打开几次依然报此错误,确定不是眼花了!
打开日志文件!找到当日错误文件内容:
--------------------------------------------------------------------------
- [矿业与工业]修建一个空间矿床开采站要多少钱?
comsci
地球上的钛金属矿藏已经接近枯竭...........
我们在冥王星的一颗卫星上面发现一些具有开采价值的矿床.....
那么,现在要编制一个预算,提交给财政部门..
- 解析Google Map Routes
dai_lm
google api
为了获得从A点到B点的路劲,经常会使用Google提供的API,例如
[url]
http://maps.googleapis.com/maps/api/directions/json?origin=40.7144,-74.0060&destination=47.6063,-122.3204&sensor=false
[/url]
从返回的结果上,大致可以了解应该怎么走,但
- SQL还有多少“理所应当”?
datamachine
sql
转贴存档,原帖地址:http://blog.chinaunix.net/uid-29242841-id-3968998.html、http://blog.chinaunix.net/uid-29242841-id-3971046.html!
------------------------------------华丽的分割线--------------------------------
- Yii使用Ajax验证时,如何设置某些字段不需要验证
dcj3sjt126com
Ajaxyii
经常像你注册页面,你可能非常希望只需要Ajax去验证用户名和Email,而不需要使用Ajax再去验证密码,默认如果你使用Yii 内置的ajax验证Form,例如:
$form=$this->beginWidget('CActiveForm', array( 'id'=>'usuario-form',&
- 使用git同步网站代码
dcj3sjt126com
crontabgit
转自:http://ued.ctrip.com/blog/?p=3646?tn=gongxinjun.com
管理一网站,最开始使用的虚拟空间,采用提供商支持的ftp上传网站文件,后换用vps,vps可以自己搭建ftp的,但是懒得搞,直接使用scp传输文件到服务器,现在需要更新文件到服务器,使用scp真的很烦。发现本人就职的公司,采用的git+rsync的方式来管理、同步代码,遂
- sql基本操作
蕃薯耀
sqlsql基本操作sql常用操作
sql基本操作
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:30:33 星期一
&
- Spring4+Hibernate4+Atomikos3.3多数据源事务管理
hanqunfeng
Hibernate4
Spring3+后不再对JTOM提供支持,所以可以改用Atomikos管理多数据源事务。Spring2.5+Hibernate3+JTOM参考:http://hanqunfeng.iteye.com/blog/1554251Atomikos官网网站:http://www.atomikos.com/ 一.pom.xml
<dependency>
<
- jquery中两个值得注意的方法one()和trigger()方法
jackyrong
trigger
在jquery中,有两个值得注意但容易忽视的方法,分别是one()方法和trigger()方法,这是从国内作者<<jquery权威指南》一书中看到不错的介绍
1) one方法
one方法的功能是让所选定的元素绑定一个仅触发一次的处理函数,格式为
one(type,${data},fn)
&nb
- 拿工资不仅仅是让你写代码的
lampcy
工作面试咨询
这是我对团队每个新进员工说的第一件事情。这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行。这句话也是我最喜欢的座右铭之一。
这个说法其实很合理:我们的工作是思考客户提出的问题,然后制定解决方案。思考第一,代码第二,公司请我们的最终目的不是写代码,而是想出解决方案。
话粗理不粗。
付你薪水不是让你来思考的,也不是让你来写代码的,你的目的是交付产品
- 架构师之对象操作----------对象的效率复制和判断是否全为空
nannan408
架构师
1.前言。
如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
Src src=new Src();
BeanCopier beanCopier = BeanCopier.create(Src.class, Des.class, false);
- ajax 被缓存的解决方案
Rainbow702
JavaScriptjqueryAjaxcache缓存
使用jquery的ajax来发送请求进行局部刷新画面,各位可能都做过。
今天碰到一个奇怪的现象,就是,同一个ajax请求,在chrome中,不论发送多少次,都可以发送至服务器端,而不会被缓存。但是,换成在IE下的时候,发现,同一个ajax请求,会发生被缓存的情况,只有第一次才会被发送至服务器端,之后的不会再被发送。郁闷。
解决方法如下:
① 直接使用 JQuery提供的 “cache”参数,
- 修改date.toLocaleString()的警告
tntxia
String
我们在写程序的时候,经常要查看时间,所以我们经常会用到date.toLocaleString(),但是date.toLocaleString()是一个过时 的API,代替的方法如下:
package com.tntxia.htmlmaker.util;
import java.text.SimpleDateFormat;
import java.util.
- 项目完成后的小总结
xiaomiya
js总结项目
项目完成了,突然想做个总结但是有点无从下手了。
做之前对于客户端给的接口很模式。然而定义好了格式要求就如此的愉快了。
先说说项目主要实现的功能吧
1,按键精灵
2,获取行情数据
3,各种input输入条件判断
4,发送数据(有json格式和string格式)
5,获取预警条件列表和预警结果列表,
6,排序,
7,预警结果分页获取
8,导出文件(excel,text等)
9,修