【发布时间】:2016-11-18 07:56:09
【问题描述】:
我有一些数据将通过 http(s) 从 Android 应用程序发送到服务器。需要按顺序发送。
是否已经存在一种将 http 请求(针对同一服务器)排队并重试它们直到它们完成(不一定成功)的方法?
我的问题是,如果没有网络覆盖,http 请求可能会失败。应该有某种形式的指数回退,或者一个监听器(用于网络重新连接)来提示重试队列的头部。
我可以自己写这个,但我想确认我没有重新发明轮子。
【问题讨论】:
-
使用 volley 库。它有最好的重试策略。
-
另一种可能是改造。
-
上传可以在后台进行吗?如果是这样,您可以使用诸如 volley 或改造之类的东西来实际上传数据,并结合
android.net.conn.CONNECTIVITY_CHANGE接收器,该接收器将在网络返回时上传排队的数据。我的应用程序中有一个类似的机制,并且效果很好。 -
看看 Sinan Kozak 在retry requests with Retrofit的回答
-
改装看起来很棒。我会在此基础上再接再厉。