解决方案 »
- 关于服务端与客户端之间的数据传递问题,加上eclipse如何同时debug服务端与客户端?
- 给企业开发一个安卓软件和苹果软件,一般是什么价格?
- android的listView有滚动条时(即实际Item数比显示出来的Item数多),点击item变色事件报空指针错
- popupwindow加白色背景框后,边缘出现黑线
- SDK安装中的问题!注重细节,打破沙锅问到底~!
- 请问大家android数据库的处理都是怎么样的呢
- Listview如何实现在空白处长按,弹出contextMenu实现添加等功能?
- android 4.1中Fragment在进行转屏的时候onCreate和onAttach()调用了两次,而onStart()只调用了一次
- 请教彩信发送问题
- 如果在AppWidget中实现圆形进度条的效果?
- 帮忙解析个简单的json数据
- 百度地图 站点查询
if (hasStop) {}
if (hasStop) {
//程序直接break;
break;
}
Thread t = new Thread(runnable);
t.stop();//执行这个方法,打断线程。
请详细说一下那个超时异常………… 程序不是在那一句就停住了么? 为什么还能执行到if(hasStop)那一句?
class GetThread implements Runnable
{
boolean end;
GetThread()
{
super();
end=false;
}
@Override
public void run()
{
socket = the_app.socket;
while(!end)
{
if(end)
break;
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String ans = in.readLine();//当启动这个线程的Activity退出的时候,线程会在这一句阻塞住,没有机会去判断退出条件
if(ans != null)
{
Message msg = new Message();
msg.obj = ans;
AskInputActivity.this.handler.sendMessage(msg);
}
}
catch (IOException e) {
Message msg = new Message();
msg.obj = "net error";
AskInputActivity.this.handler.sendMessage(msg);
break;
}
catch (NullPointerException e)
{
Message msg = new Message();
msg.obj = "net error";
AskInputActivity.this.handler.sendMessage(msg);
break;
}
}
}
public void stop()
{
end = true;
}
}
另外一个。你建立线程的对象的。close也可以。
这个socket是全局的,这个程序的所有activity都需要这个socket的连接,除了在退出的时候close,然后每个activity启动的时候连一下之外有什么更好的解决方法么?主要是如果这个线程不停止,在别的activity里面请求服务器发送消息的时候,这个线程就会得到另一个activity所请求的信息然后报错,另一个activity就收不到该收到的信息了,所以想在退出activity的时候退出线程。听说线程可以用interrupt强制打断?