我开发了一个应用程序来与我自己的服务器通信并发布它。但是,有时app力会关闭。我知道代码中没有错误,因为应用程序大部分时间都能正常工作,但有时它会等待服务器的答案。我认为这是因为有这么多人正在使用该应用程序,并且应用程序每1秒左右刷新一次,因此这种繁重的流量会导致服务器花费大量时间来响应。那么你如何处理这样一个用例呢?我应该有一个用例,如果服务器在一段时间后没有响应你只是停止应用程序并抛出一条消息说服务器没有响应或类似的东西?
答案 0 :(得分:2)
目前,您的主应用程序因服务器负载而超时。如果将连接详细信息放在一个线程中,则可以避免主线程超时。您可以从连接线程(通过某个共享对象)检查更新的数据,然后在数据停止时向用户显示消息。
答案 1 :(得分:1)
听起来您在主Activity
中拥有服务器通信代码。在此Activity
中运行的任何代码都将在主UI线程中运行。如果您的代码向您的服务器发送请求,然后等待响应,则主UI线程将被阻止,直到您的服务器响应为止。 Android操作系统识别出UI线程已经有效挂起并杀死了您的应用程序。
您需要做的是将Activity
中的UI代码与服务器通信代码分开。您应将其移至AsyncTask
或新的Thread
/ Handler
组合中。这样即使服务器负载不足,UI也能保持响应。