QueueEvent

队列化执行线程和代码块

函数说明

1.主要有两个子类,QueueEventThread用来顺序执行线程,QueueEventCode用来顺序执行代码

2.可以使用setSpeed()设置执行速率

3.enqueue()加入队列

4.next()执行队列中的下一个事件

5.setSnyc()是否同步执行

6.finish()停止队列

回调说明

1.回调只有QueueEventCode对象存在

2.onDoingCode()回调,是执行代码块的回调。

3.onDoneCode()回调,是代码执行完毕的回调。

举例

public void getData1(){

QueueEventCode.getInstance().enqueue(new OnCodeEvent() {

@Override

protected void onDoingCode(Bundle b) {

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder().get().url("http://www.baidu.com/").build();

Call call1 = client.newCall(request);

//查询省

call1.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

//失败

}

@Override

public void onResponse(Call call, final Response response) throws IOException {

final String responseStr = response.body().string();

//成功

//查询到省

Bundle bundle=new Bundle();

bundle.putString("key",responseStr);

QueueEventCode.getInstance().next(bundle);//通知下次请求开始,并传递参数

}

});

}

}).enqueue(new OnCodeEvent() {

@Override

protected void onDoingCode(Bundle b) {//可以从bundle中取出上一次回调来的参数,上一次返回的是省

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder().get().url("http://www.baidu.com/").build();

Call call1 = client.newCall(request);

//查询市

call1.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

//失败

}

@Override

public void onResponse(Call call, final Response response) throws IOException {

final String responseStr = response.body().string();

//成功

//查询到市

Bundle bundle=new Bundle();

bundle.putString("key",responseStr);

QueueEventCode.getInstance().next(bundle);//通知下次请求开始,并传递参数

}

});

}

}).enqueue(new OnCodeEvent() {

@Override

protected void onDoingCode(Bundle b) {//可以从bundle中取出上一次回调来的参数,上一次返回的是市

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder().get().url("http://www.baidu.com/").build();

Call call1 = client.newCall(request);

//查询市

call1.enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

//失败

}

@Override

public void onResponse(Call call, final Response response) throws IOException {

final String responseStr = response.body().string();

//成功

//查询到县

Bundle bundle=new Bundle();

bundle.putString("key",responseStr);

QueueEventCode.getInstance().next(bundle);//通知下次请求开始,并传递参数

}

});

}

});

}

Java代码块回调,QueueEvent - 队列化执行线程和代码块相关推荐

  1. Java多线程01:创建新的执行线程

    ⭕️前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(点击跳转到网站)⭕️ 创建新的执行线程(thread.Runnable) 核心概念 线程就是独立的执行路径 在程序 ...

  2. java中的异常处理代码,java_深入剖析Java中的各种异常处理方式,1. 调试追踪代码:public s - phpStudy...

    深入剖析Java中的各种异常处理方式 1. 调试追踪代码: public static void enterTryMethod() { System.out.println("enter a ...

  3. Java对接ansible自动运维化平台

    Java对接ansible自动运维化平台实现文件采集分发 经过大量查阅,网上使用Java对接ansible自动运维化平台的示例代码几乎没有,为了方便自己后期巩固以及有需要的小伙伴,特以记录!!! 此次 ...

  4. jupyter可以打开HTML文件吗,Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)...

    前面用了很久Notebook来交互式编程了,此次说说几个其余的选项:html Notebook Markdown 此次选Markdown模式(关于Markdown基础能够看以前写的Markdown B ...

  5. 在jupyter编写代码列出HTML,Jupyter ~ 像写文章般的 Coding (附:同一个ipynb文件,执行多语言代码)...

    前面用了好久Notebook来交互式编程了,这次说说几个其他的选项: Notebook Markdown 这次选Markdown模式(关于Markdown基础可以看之前写的Markdown Base) ...

  6. Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例

    Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例 2018年05月08日 08:12:48 WJN不忘初心 阅读数:34 除了说普通代码块,静态代码块,构造代码块的执行顺序外,还有静 ...

  7. java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题

    2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一.静态成员变量(Static) * 1.静态成员变量为类变量,所有对象共享同一内存空间 * 2.静态 ...

  8. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块的加载顺序

    1. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块 在Java中,使用{}括起来的代码称为代码块,代码块可以分为以下四种: (1)普通代码块:就是类中方法的方法体 public vo ...

  9. java 代码块 作用_Java核心(三):代码块的作用

    Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...

最新文章

  1. C#操作注册表全攻略
  2. 处理 Oracle SQL in 超过1000 的解决方案
  3. dubbo服务使用spring-data-mongodb进行时间查询的bug记录
  4. 【Linux】一步一步学Linux——startx命令(199)
  5. 解密 云HBase时序引擎OpenTSDB 优化技术
  6. linux安装常用命令工具包wget,cmake等
  7. python 3.5 django 笔记(六)修改博客标题与内容
  8. 万万没想到!ModelArts与AppCube组CP了
  9. linux的终端下的命令行管道|的简单实现
  10. java stream byte_乐字节-Java8新特性之Stream流(上)
  11. faceframe kinect2.0 api 注意点
  12. 嵌入式Linux学习笔记
  13. linux的ib网卡驱动安装,linux安装IB网卡(mellanox)驱动
  14. f1c100A运行linux,荔枝派 Nano 全志 F1C100s 编译运行 Linux 笔记
  15. ENVI Classic 分割标签制作
  16. 简单两个矩阵如何用计算机运算,教你使用excel做矩阵运算
  17. 基于STM32的多普勒雷达测速
  18. 【最新】半小时教你制作出属于自己的QQ机器人【保姆级】
  19. 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
  20. LearnOpenGL学习笔记—入门03:Hello Triangle

热门文章

  1. 前端学习(1800):前端调试之清除浮动练习1
  2. “睡服”面试官系列第二十篇之generator函数的异步应用(建议收藏学习)
  3. 前端学习(171):注释元素
  4. 第三十四期:花了一个星期,我终于把RPC框架整明白了!
  5. 设置启用树莓派的HDMI显示
  6. linux下GPRS模块ppp拨号上网
  7. 理解CSS3 max/min-content及fit-content等width值
  8. display:table-cell的集中应用
  9. linux初始化进程ppid号,linux基础(十一)--系统初始化的简谈
  10. JMeter - 如何创建可重用和模块化测试脚本