Commit b0e8702af8a8dc6fe2dbd863d458fd80c0cf05bb
1 parent
9ed6bd9a
Exists in
master
and in
5 other branches
Android - Melhorando processo de desconexão/conexão
Showing
1 changed file
with
39 additions
and
41 deletions
Show diff stats
android/src/br/com/bb/pw3270/lib3270.java
... | ... | @@ -194,7 +194,16 @@ public abstract class lib3270 |
194 | 194 | public void onFinish() |
195 | 195 | { |
196 | 196 | Log.d(TAG, "Timer " + id + " finished"); |
197 | - terminal.timerFinish(id); | |
197 | + | |
198 | + Thread t = new Thread() | |
199 | + { | |
200 | + public void run() | |
201 | + { | |
202 | + terminal.timerFinish(id); | |
203 | + } | |
204 | + }; | |
205 | + | |
206 | + t.start(); | |
198 | 207 | } |
199 | 208 | |
200 | 209 | } |
... | ... | @@ -215,7 +224,7 @@ public abstract class lib3270 |
215 | 224 | |
216 | 225 | protected int send_data(byte[] data, int len) |
217 | 226 | { |
218 | - Log.i(TAG, "Bytes a enviar: " + len); | |
227 | + Log.d(TAG, "Bytes a enviar: " + len); | |
219 | 228 | |
220 | 229 | try |
221 | 230 | { |
... | ... | @@ -233,12 +242,11 @@ public abstract class lib3270 |
233 | 242 | if (msg == null) |
234 | 243 | msg = ""; |
235 | 244 | |
236 | - Log.i(TAG, "Erro ao enviar dados: " + msg); | |
245 | + Log.d(TAG, "Erro ao enviar dados: " + msg); | |
237 | 246 | |
238 | 247 | postPopup(1, "Desconectado", "Erro de comunicação ao enviar dados", msg); |
239 | 248 | |
240 | - connected = false; | |
241 | - | |
249 | + net_cleanup(); | |
242 | 250 | } |
243 | 251 | return -1; |
244 | 252 | } |
... | ... | @@ -312,29 +320,31 @@ public abstract class lib3270 |
312 | 320 | { |
313 | 321 | set_connection_status(true); |
314 | 322 | |
315 | - while (connected) | |
323 | + try | |
324 | + { | |
325 | + sock.setSoTimeout(100); | |
326 | + } catch (Exception e) { connected = false; } | |
327 | + | |
328 | + while (connected && sock.isConnected() ) | |
316 | 329 | { |
317 | - byte[] in = new byte[16384]; | |
318 | - int sz = -1; | |
319 | - | |
320 | 330 | try |
321 | 331 | { |
322 | - sz = inData.read(in, 0, 16384); | |
332 | + byte[] in = new byte[16384]; | |
323 | 333 | |
324 | - } catch (Exception e) | |
325 | - { | |
326 | - String msg = e.getLocalizedMessage(); | |
327 | - Log.i(TAG, "Erro ao receber dados do host: " + msg); | |
328 | - postPopup(1, "Desconectado", "Erro de comunicação ao receber dados", msg); | |
329 | - connected = false; | |
330 | - sz = -1; | |
331 | - } | |
334 | + int sz = inData.read(in, 0, 16384); | |
332 | 335 | |
333 | - if (sz > 0) | |
334 | - procRecvdata(in,sz); | |
336 | + if (sz > 0) | |
337 | + procRecvdata(in,sz); | |
335 | 338 | |
336 | - } | |
339 | + } catch (Exception e) { } | |
337 | 340 | |
341 | + } | |
342 | + | |
343 | + if(connected) | |
344 | + { | |
345 | + postPopup(1, "Desconectado", "Erro de comunicação ao receber dados", ""); | |
346 | + connected = false; | |
347 | + } | |
338 | 348 | } |
339 | 349 | |
340 | 350 | Log.v(TAG, "Exiting communication thread"); |
... | ... | @@ -541,6 +551,8 @@ public abstract class lib3270 |
541 | 551 | |
542 | 552 | private int net_cleanup() |
543 | 553 | { |
554 | + connected = false; | |
555 | +/* | |
544 | 556 | if(sock != null) |
545 | 557 | { |
546 | 558 | Thread t = new Thread() |
... | ... | @@ -554,40 +566,26 @@ public abstract class lib3270 |
554 | 566 | try |
555 | 567 | { |
556 | 568 | sock.shutdownInput(); |
569 | + return; | |
557 | 570 | } |
558 | - catch(Exception e) | |
559 | - { | |
560 | - String msg = e.getLocalizedMessage(); | |
561 | - if(msg == null) | |
562 | - msg = e.getMessage(); | |
563 | - | |
564 | - Log.v(TAG,": shutdownInput error" + (msg != null ? msg : e.toString())); | |
565 | - } | |
571 | + catch(Exception e) { } | |
566 | 572 | } |
567 | 573 | |
568 | - /* | |
569 | - if!(sock == null && sock.isClosed())) | |
574 | + if(!(sock == null && sock.isClosed())) | |
570 | 575 | { |
571 | 576 | try |
572 | 577 | { |
573 | 578 | sock.close(); |
579 | + return; | |
574 | 580 | } |
575 | - catch(Exception e) | |
576 | - { | |
577 | - String msg = e.getLocalizedMessage(); | |
578 | - if(msg == null) | |
579 | - msg = e.getMessage(); | |
580 | - | |
581 | - Log.v(TAG,"sockclose error: " + (msg != null ? msg : e.toString())); | |
582 | - } | |
581 | + catch(Exception e) { } | |
583 | 582 | } |
584 | - */ | |
585 | 583 | } |
586 | 584 | }; |
587 | 585 | |
588 | 586 | t.start(); |
589 | 587 | } |
590 | - | |
588 | + */ | |
591 | 589 | return 0; |
592 | 590 | } |
593 | 591 | ... | ... |