android中的线程机制(二)—SocketCallBack
来源:互联网 发布:网络艺术研究 编辑:程序博客网 时间:2024/05/23 23:39
一个经典例子让你彻彻底底理解java回调机制
http://blog.csdn.net/xiaanming/article/details/8703708
本博文转载自http://blog.csdn.net/xiaanming/article/details/9750689// 含有3个线程的线程池 private static final ExecutorService executorSocket = Executors .newFixedThreadPool(3); /** * * @param <T> * @param url * WebService服务器地址 * @param methodName * WebService的调用方法名 * @param properties * WebService的参数 * @param webServiceCallBack * 回调接口 */ public void callSocket(SocketPacket socketPkg,final SocketCallBack socketCallBack) { this.socketPackage=socketPkg; // 用于子线程与主线程通信的Handler final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 将返回值回调到callBack的参数中 socketCallBack.callBack((SocketPacket) msg.obj); } }; // 开启线程去访问WebService executorSocket.submit(new Runnable() { @Override public void run() { try { socket = new Socket("192.168.2.103",9091); System.out.println("客户端socket运行!"); } catch (UnknownHostException e) { System.err.println("socket链接异常,链接信息:"+"192.168.2.102"); e.printStackTrace(); } catch (IOException e) { System.err.println("socket IO异常"); e.printStackTrace(); } SocketPacket resPacket = null; try { resPacket =sentSocket(socketPackage); } catch (Exception e) { try { System.err.println("socket发送消息异常,发送信息:"+new String(socketPackage.getByteStream())); } catch (UnsupportedEncodingException e1) {// System.err.println("socket将socketPackage转为字符串异常,socketPackage信息:"+socketPackage.getByteStream()); e1.printStackTrace(); } e.printStackTrace(); } finally { // 将获取的消息利用Handler发送到主线程 mHandler.sendMessage(mHandler.obtainMessage(0, resPacket)); } } }); } /** * * * @author * */ public interface SocketCallBack { public void callBack(SocketPacket socketPacket); }
0 0
- android中的线程机制(二)—SocketCallBack
- android中的线程机制(二)————SocketCallBack
- Android中的线程机制(Handler Looper)(二)
- Android中的线程机制(Handler Looper)(二)
- Android中的线程机制
- Android中的线程机制
- Android中的线程机制
- android中的线程机制
- Android中的Handler机制(二)
- android中的线程(二上)
- android中的线程(二下)
- Android中的线程池(二)
- android中的线程通信(二)
- Android中的多线程处理(二)——使用线程池中的线程
- Android深入浅出系列之广播机制—Android中的广播机制(二)
- android之多线程工作(二)handler messge机制
- Android中的MessageHandler机制二
- android中的线程机制(一)————Runnable
- ViewPager的setOffScreenPagerLimit()和FragmentStatePagerAdapter及FragmentPagerAdapter的区别与联系
- vue.js之路(4)——vue2.0s中eventBus实现兄弟组件通信
- 大型网站架构之分布式消息队列
- 文章标题
- telnet root 登陆问题
- android中的线程机制(二)—SocketCallBack
- 为什么要使用redis数据库?
- Mac OSX10.12 上安装配置caffe(无GPU)
- Java list<T> 去重复 数据
- 搭建kindleEAR为kindle推送RSS订阅
- 【工业相机Pointgray配置VS2012】Pointgray配置VS2012并将Pointgray类型转换成Mat类型
- oc客服端向服务端传输数据的加密
- golang 设置web请求状态码
- html——跑马灯以及背景音乐的实现