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

上饶专业企业网站建设网站搭建的策略与方法

上饶专业企业网站建设,网站搭建的策略与方法,自己做网站nas,大连开发区二手房文章目录 一、前言二、关键代码三、参考链接 一、前言 在程序中会经常需要做一些异步任务,但是由于部分操作其实很简单,仅仅是短暂的进行异步操作,然后在结果成功或失败的时候切换回主线程进行下一步处理,这期间不能阻塞主线程。…

文章目录

    • 一、前言
    • 二、关键代码
    • 三、参考链接

一、前言

在程序中会经常需要做一些异步任务,但是由于部分操作其实很简单,仅仅是短暂的进行异步操作,然后在结果成功或失败的时候切换回主线程进行下一步处理,这期间不能阻塞主线程。这里记录一下使用google的guava库里面的ListenableFuture并发类进行处理,CompletableFuture也可以,只是在Android上最低支持API23版本,但是项目最低支持21,使用coreLibraryDesugaring进行兼容也处理不了这个问题,又因为项目中本身就有guava。所以使用这个进行开发。Android自身的话可以使用Loader或者Work进行加载,Loader的写法相对来说会简单一些

二、关键代码

private final ListeningExecutorService listeningExecutor = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor());
/*** 设置展示的信息*/public void setDisplayDataInfo(Weather.WeatherResponse dataInfo, Activity activity) {this.mActivity = activity;ParseHourDataCallable parseHourDataCallable = new ParseHourDataCallable(dataInfo);ListenableFuture<List<HourBean>> weaHourliesFuture = listeningExecutor.submit(parseHourDataCallable);Futures.addCallback(weaHourliesFuture, new FutureCallback<List<HourBean>>() {@Overridepublic void onSuccess(List<HourBean> result) {if (!result.isEmpty()){mAdapter.setDataList(result);}}@Overridepublic void onFailure(@NonNull Throwable t) {t.printStackTrace();//失败的话就不处理了}},ContextCompat.getMainExecutor(getContext()));//传入主线程的线程池,后面会自动切换线程}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();listeningExecutor.shutdown();}private class ParseHourDataCallable implements Callable<List<HourBean>>{private final Weather.WeatherResponse dataInfo;public ParseHourDataCallable(Weather.WeatherResponse dataInfo) {this.dataInfo = dataInfo;}@Overridepublic List<HourBean> call() throws Exception {//这里进行耗时操作List<HourBean> hours = new ArrayList<>();if (dataInfo != null && dataInfo.weaHourlies != null && dataInfo.weaHourlies.length > 0) {hours = parserData(Arrays.asList(dataInfo.weaHourlies),dataInfo.timezone ,dataInfo.sunrises[0]);}return hours;}}

整体用法的话和CompletableFuture差不多

三、参考链接

  1. 使用 ListenableFuture
  2. ContextCompat.getMainExecutor(@NonNull Context context)
  3. 【并发编程】Guava - ListenableFuture,避免Future获取阻塞问题,增加回调
  4. Guava-ListenableFuture
  5. 那些年我们追过的异步骚操作:ListenableFuture、CompletableFuture、RxJava(Observable)
  6. Java线程池详解:Future的使用和实现
  7. Java多线程之CompletableFuture
  8. ListenableFuture,FutureCallback和超时
  9. Example usage for com.google.common.util.concurrent Futures withTimeout
  10. Google Guava 并发编程 - ListenableFuture
  11. Java并发编程——CompletableFuture类
  12. 深入解析CompletableFuture的功能和用法
http://www.yayakq.cn/news/327083/

相关文章:

  • 学做彩票网站制作网页一般需要兼容哪些网站
  • 网站推广做哪个比较好门户网站ip地址段
  • 惠州做棋牌网站建设怎么做一帘幽梦网站
  • 广州市住房建设公租房网站网站建设现在主要做些什么
  • 查网站备案名称学php搞网站开发
  • 网站显示备案号wordpress微信货源网
  • 免费php网站模板哪里网站开发小程序
  • 百度投诉中心电话玉林做网站优化推广
  • 十大网络科技公司企业网站seo案例
  • 重庆seo网站排名优化wordpress 10万并发
  • 哪个旅游网站做的最好校园网站系统的建设
  • 徐州建设工程招投标官方网站自己怎么做视频收费网站
  • 门户网站兴化建设局天元建设集团有限公司logo
  • 中国域名门户网站建设网站火车票预订
  • 网站图片尺寸wordpress主题文件夹
  • 制作网站的软件下载做门图网站
  • 做的差的网站天津网站建设托管
  • 做网站表格辽宁建设工程信息网分数
  • 做网站后端的是什么部门正邦logo设计
  • 织梦视频资讯网站源码做网站空间放哪些文件夹
  • 做网站排名赚钱吗选择大连网站建设
  • 时尚手表网站php免费开源crm系统
  • 长治网站制作报价音乐制作软件哪个好
  • 怎样选择网站建设网站排名下降原因
  • 网站新闻专题怎么做公司网站开发用什么软件
  • 做网站的需求分析企业网站案例展示
  • 涂料厂做网站有用吗邢台百度推广
  • wordpress知名网站丽水微信网站建设哪家好
  • 那家建设网站p2p公司最好?给我播放电影在线观看
  • 东莞免费做网站时代强个人网站