Java 当服务器延迟时,如何避免Android中的ANR响应?
我是Android新手,但我对Java和JavaEE有所了解 在与服务器(webservice)通信时,它与我从它那里得到的响应配合得很好。 但是,如果任何时间延迟超过5秒,它将进入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()
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:好的!!我明白你的意思。。我也会参考文档