Android多线程合并——使用CountDownLatch干掉第三方SDK的回调函数
2015-02-05 10:38
351 查看
原因:
有时候我们用的第三方SDK是一个回调函数,这样我们就不得不不把代码写在这些回调函数里,这样的写法其实很糟糕,至少扰乱了我们的逻辑。本身我们写的就是一个线程,第三方SDK又做了一个线程,我们又不知道什么时候回调函数触发,最简单的办法就是线程等待,然后再回调的时候调用停止等待,这也就是用CountDownLatch的作用了。解决方案:
昨天无意间重构了下自己的网络框架,我的框架是要求在线程里只做数据解析,然后在handler里做逻辑处理,这样能保证手机流畅度。可是结果却不令人满意啊,因为我要知道融云的登录是否成功,之后才能在handler里处理,所以就想到了JAVA的这个函数CountDownLatch。用法:
// 这里是创建一个CountDownLatch,用来做同步。 final CountDownLatch countDownLatch = new CountDownLatch(1); // 这里是模拟融云的回调,用一个线程表示 new Thread(new Runnable() { public void run() { //模拟初始化数据 System.out.println("初始化结束"); // 当融云的回调函数完成以后就告诉我们的线程,可以继续了。 countDownLatch.countDown(); } }).start(); // 等待融云的回调触发 try { countDownLatch.await(); } catch (InterruptedException e) { } // 当你调用countDownLatch.countDown();以后我们的线程就不会处于等待状态了 System.out.println("回调完成");
相关文章推荐
- Android多线程合并——使用CountDownLatch干掉第三方SDK的回调函数
- Android:QQ分享、微信分享、朋友圈分享(不使用第三方SDK)
- android使用第三方sdk的相关问题
- android第三方视频解码器Vitamio SDK使用后的感觉(2014.03.11)
- Android第三方SDK使用分析
- Android中实现版本更新(一)使用第三方sdk更新
- Android使用第三方SDK——百度地图
- Android开发中的第三方支付SDK的接入与使用(支付宝+微信支付+银联)
- android一键分享功能不使用任何第三方sdk
- 最新Android实现分享到QQ QZone 博客功能(集成官方SDK,不使用第三方)
- Android 使用第三方SDK 一般流程
- Android不经过第三方\官方SDK直接使用Intent快捷实现QQ微信分享
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
- android stutio创建证书与打包APP上线、配制gradle中的证书,使用第三方平台SDK方便开发调试
- 不使用第三方 SDK 实现简单分享 -- Android 学习之路
- android一键分享功能不使用任何第三方sdk
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
- Android:QQ分享、微信分享、朋友圈分享(不使用第三方SDK)
- android一键分享功能不使用任何第三方sdk
- 使用友盟SNS_SDK为Android应用加入SNS分享、同步功能