|
楼主 |
发表于 2012-10-7 19:53:54
|
显示全部楼层
我已经做出来了,就是另外开启一个线程,处理接收到的信息。一些关键代码如下:
mThread= new Thread(mRunnable);//通过Runnable接口创建线程
mThread.start();//开启线程
private Runnable mRunnable = new Runnable()//创建线程处理传来的信息
{
public void run()
{
while (true) //控制run方法中的循环条件来控制线程的终止,这里是个 死循环,意味着此线程将一直运行
{
try
{
if((msg=br.readLine())!=null)
{
mHandler.sendMessage(mHandler.obtainMessage());
}
}
catch(Exception e)
{
Log.e(TAG,e.toString());
}
}
}
};
Handler mHandler=new Handler()//处理传来的信息
{
public void handleMessage( Message Msg)
{
super.handleMessage(Msg);
try
{
textview2.setText(msg);//我是将从服务器传来的信息实时更新显示到文本框中
}
catch(Exception e)
{
Log.e(TAG,e.toString());
}
}
};
当然这些前提是已经建立socket连接了,那些代码我就没写了。还要注意必须在xml文件中声明以下代码:
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
我开始在这里只声明了3个,结果数据就不能回传,后来加了一个,就可以了。你试试吧,看能不能行
|
|