|
接着上一次的教程
服务器易语言 IP地址:192.168.1.181 端口:8866 手机android IP地址:192.168.1.199
---------------------------------------------------------------------------------------
先画界面。代码如下 编辑框一个(EditText)*1 标签(TextView)*1 按钮(Button)*2
添加访问网络权限:<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 就可以了
}
};
========================我写的代码
======================运行结果 通过这两次教程,大家基本上会写Android 的客户Duan口 。大家可以脑动打开用手机控制电脑了哈哈~~
下一次讲解 Android 网络通信POST
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|