请问一个连接服务器时等待界面的问题
在做一个东西有许多时候需要连接到服务器,在连接等待时候我想显示一个动画和一个StringItem的画面,连接成功后自动转到另一个画面。主要是选择连接服务器后另起一个连接服务器的线程,然后添加动画。连接服务器的线程负责连接发送请求和接受回应。
timer = new Timer();
ServiceInquiryThread serviceInquiryThread = new ServiceInquiryThread(this);
final Thread workerThread = new Thread(serviceInquiryThread);
workerThread.start();
// schedule a timer for animation and to check if sync complete
timer.schedule(new TimerTask() {
public void run() {
currentImage = (currentImage + 1) % syncImages.length;
syncAnimation.setImage(syncImages[currentImage]);
if (!isWorking) {
timer.cancel();
}
}
}, 300, 300);
现在的问题是:
1。如果网络连接不成功,如服务器没开,会导致等待界面死掉,按cancel键退回也无效,动画也不卡住不动,我是在该等待界面的构造函数启动连接服务器的线程的(如上述代码)。。。照理说应该不会死的呀。。。
2。如果服务器没开,那为什么conn = (HttpConnection)Connector.open(URL);这样的语句catch不到任何异常,反而要到发送request,接受response的时候才catch到Connection
NotFoundException异常呢???
求救!
------解决方案--------------------帮顶
------解决方案--------------------用新的一个线程去连接网络。然后用标记位来监控
------解决方案--------------------```等待界面应该是等用户成功登陆才出现的 用户登陆失败或网络出现错误直接报个错
public void dResult(int result){
if(result==1013478509){
success=new successForm(this);//这个是成功登陆才出现的界面
display.setCurrent(success);
}else{
Alert alert=new Alert( "登陆失败 ");
alert.setType(AlertType.ERROR);
alert.setTimeout(2000);
display.setCurrent(alert,frm);
}
------解决方案--------------------第一个问题:针对这个情况。你要处理链接的异常把链接的线程关闭。http是阻塞式的协议。
------解决方案--------------------2.基于http的连接,发送出去的数据是缓冲起来的
只有当你获取ResponseCode或者open输入流的时候,才真正把数据发送出去