Android如果设备休眠,则在HTTP事务期间会发生什么?

时间:2019-01-07 10:51:23

标签: android retrofit androidhttpclient

我无法提供我要解释的示例,因此我将其发布在此处,以向我提供有关此示例的更多信息。

让我们说我们想发出一个HTTP请求以从服务器接收JSON对象。我们没有唤醒锁,也没有使我们的应用程序成为前台。我们建立连接,然后等待服务器的响应。

  

如果设备在那一刻进入睡眠状态(等待   JSON对象)。当设备唤醒时我们得到物体吗?   超时异常?

注意

在此示例中不涉及打ze模式。只是该设备进入睡眠状态。 谢谢

2 个答案:

答案 0 :(得分:0)

在这种情况下,您的设备将进入睡眠状态,并且您将获得活动生命周期方法回叫,即在服务运行时 onPause()和onStop 。此过程不会使您的Web服务呼叫停止。从服务器获得响应后,您的应用将获得回调(如果已实现)。除非您在睡觉前杀死了应用程序,否则不会发生任何不良情况。如果在网络服务之后,您可能正在访问一些与开始网络服务的活动有关的变量。这将导致crash.call。当您撤消睡眠状态时,您会收到 onStart和onResume 的回叫,这意味着您的设备进入睡眠状态并不会终止您的活动。

答案 1 :(得分:0)

  

当Android闲置时,设备会锁定,然后转到   深度睡眠模式。在深度睡眠模式下,Android系统关闭   现有的网络连接,例如TCP或UDP。如果您的应用已连接   到服务器,它将失去与服务器的连接并尝试重新连接   基于为客户端配置的重新连接尝试方法。但   如果您的应用是服务器,则所有客户端都将失去与   服务器,并且您必须再次在服务器中启动套接字,然后尝试   再次从客户端连接。

来自https://stackoverflow.com/a/33366487/806328

改造只是“侦听”网络连接,当它丢失时-指定时间后连接超时错误