gpt4 book ai didi

java - 服务器出现时间延迟时如何避免 Android 中的 ANR 响应?

转载 作者:行者123 更新时间:2023-11-30 09:40:16 26 4
gpt4 key购买 nike

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

即使是一些相关示例也会对我有所帮助。

代码 fragment

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);

附加信息:我正在使用 jax.ws 在 Android 中创建 webserviceksoap api。提前致谢。

编辑

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

我在将其构建为语法时错过了将其放入此处..!!

最佳答案

首先,这个条件应该是,

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

现在针对ANR

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

关于java - 服务器出现时间延迟时如何避免 Android 中的 ANR 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com