精易论坛

标题: android 网络通信基础Socket (二) [打印本页]

作者: 945426557    时间: 2015-8-24 13:49
标题: android 网络通信基础Socket (二)
接着上一次的教程
     服务器易语言 IP地址:192.168.1.181 端口:8866   手机android IP地址:192.168.1.199
---------------------------------------------------------------------------------------
            先画界面。代码如下    编辑框一个(EditText)*1  标签(TextView)*1 按钮(Button)*2
[attach]444597[/attach]
添加访问网络权限:<uses-permission  android:name="android.permission.INTERNET"/>
=================开始今天的讲解===============================
上一次的课程只能监听服务器发送的一条数据。无法循环监听,所以今天要在程序里添加多线程。好不多说了现在介绍多线程 Thread和Handler
new Thread(new Runnable() {                      //创建多线程
      
       public void run() {
        // TODO Auto-generated method stub
                                                                              //随然是多线程 根据android 的安全性 禁止在UI进程以外更新
        }
             }).start();  //运行
====================================Handler   android的UI进程
Handler up= new Handler(){                                 //创建UI更新线程
    public void  handleMessage(Message msg)
    {
                                                                           //更新UI代码
                }
}
====================================实战用法
按钮按下后
      new Thread(new Runnable() {                     
      
       public void run() {
        // TODO Auto-generated method stub
             while(true)  
               {
                  Message msg=up.obtainMessage();                     //从消息池中拿出msg
                      //如果需要 Message 提供 两个整数变量 arg1 arg2
                      //如果你需要处理的数据是 字节集或者字符串 等等需要 Bundle
                          msg.arg1=10;
                          msg.arg2=30;
                            Bundle bundle=new Bundle();            //创建bundle
                            String text="admin";
                            bundle.putString("txt",text);       //这个函数有两个参数 第一个参数 是提取key 第二个是String 变量
                           msg.setData(bundle);                   //把bundle 和Message 绑定      
                    up.sendMessage(msg);                       //发送消息
                 }                                                               
        }
             }).start();

---
写在主线程外   onCreate

   Handler up =new Handler(){
     
     public void handleMessage(Message msg){
      int x=  msg.arg1                     //因为这是个变量可以直接使用
      int y =msg.arg2                        //同上
     Bundle bundle=msg.getData();    //这句好我还知道一种用法 msg.getData().getString("txt")  这种比较简单  Bundle绑定的数据较多的话还是
                                                        //老老实实的用正常的方法把...
     TextView text=(TextView)findViewById(R.id.text1);
     text.settext(bundle.getString("txt"));            //输入提取key 就可以了
  }
  };
========================我写的代码
[attach]444622[/attach]
======================运行结果    通过这两次教程,大家基本上会写Android 的客户Duan口 。大家可以脑动打开用手机控制电脑了哈哈~~
[attach]444628[/attach][attach]444629[/attach]
下一次讲解 Android 网络通信POST






作者: Sunnnny    时间: 2015-8-24 13:55
支持一个
作者: zjwanywn    时间: 2015-8-24 14:37
持续支持,学习!
作者: 寻找星空    时间: 2015-8-24 14:51
加个淘帖,支持一个。
作者: 945426557    时间: 2015-8-24 17:03
感谢大家的对我的支持!!!
作者: sarmanliao    时间: 2015-9-1 16:47
新生路过,对什么都有兴趣,学习一下。
作者: wxy0627    时间: 2015-12-17 09:24
额 。看不懂
作者: bm123    时间: 2015-12-18 18:49
学习中。。。。,支持




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4