Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当服务器延迟时,如何避免Android中的ANR响应?_Java_Android_Web Services_Android Anr Dialog - Fatal编程技术网

Java 当服务器延迟时,如何避免Android中的ANR响应?

Java 当服务器延迟时,如何避免Android中的ANR响应?,java,android,web-services,android-anr-dialog,Java,Android,Web Services,Android Anr Dialog,我是Android新手,但我对Java和JavaEE有所了解 在与服务器(webservice)通信时,它与我从它那里得到的响应配合得很好。 但是,如果任何时间延迟超过5秒,它将进入ANR。现在我的问题是如何检查java功能,以了解服务器是否响应。这方面有什么想法吗 甚至一些相关的例子也会对我有所帮助 代码片段 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run()

我是Android新手,但我对Java和JavaEE有所了解 在与服务器(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); 
if(  sendToWebservice(String_to_send).equalIgnorecase("fromWebservice") instead of ==
其他信息: 我正在使用
jax.ws
在Android中创建
webservice
&
ksoapapi
。 提前谢谢

编辑

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); 
if(  sendToWebservice(String_to_send).equalIgnorecase("fromWebservice") instead of ==
在这里,我把它的语法框架化的时候,我没有把它放进去

首先, 这个条件应该是,

if(sendToWebservice(String_to_send).equals("fromWebservice")) 
现在,对于ANR


您可以在HTTP请求中设置响应超时,因此,如果存在时间延迟,则您可以从服务器获得超时响应,如果可能,还可以在UI线程中进行任何web服务调用以及在其他工作线程中进行web服务调用时显示一些进度对话框。。。不,处理程序不是新线程…@Selvin:好的!!我明白你的意思。。我也会参考文档