2

我是 Android 新手,但我对 Java 和 Java EE 有所了解。在与 Server(webservice) 通信时,它可以很好地处理我从中获得的响应。但如果有任何超过 5 秒的延时,它就会ANR. 现在我的问题是如何检查我的 java 功能,以了解服务器是否响应。这有什么想法吗??

甚至一些相关的例子也会帮助我。

代码片段

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    public void run() { 
             // Problem is if Server is not Working , it delays and the UI wents to ANR 
              if(  sendToWebservice(String_to_send)=="fromWebservice") {
                Toast.makeText(context, "Connected", 500).show();

              }
             else {
                Toast.makeText(context, "Not Connected,Try again ", 500).show();
                finish();
            }
     } 
    }, 5000); 

附加信息:我用于在 Androidjax.ws中创建webservice& 。ksoap api提前致谢。

编辑

if(  sendToWebservice(String_to_send).equalIgnorecase("fromWebservice") instead of ==

我错过了把它放在这里的语法中..!!

4

1 回答 1

2

首先,这个条件应该是,

if(sendToWebservice(String_to_send).equals("fromWebservice")) 

现在对于ANR

您可以将响应超时放在您的 HTTP 请求中,因此,如果有时间延迟,那么您会从服务器获得超时响应,如果可能的话,当 UI 线程中进行任何 Web 服务调用并且您的 Web 服务调用在其他工作线程中进行时,如果可能显示一些进度对话框。

于 2012-02-29T06:49:33.990 回答