Android - 将数据发送到 Web 服务

Android - sending data to a web service

我正准备编写一个应用程序,通过 post 请求将数据发送到服务器。这些请求可能会失败,如果失败,我希望在连接恢复在线时发送它们。

实现此行为的最佳方式是什么?

编辑 我已经阅读了一些文章并提出了以下想法。我在清单中注册了一个 BroadcastReceiver 并告诉它监听 android.net.conn.CONNECTIVITY_CHANGE 和 android.net.wifi.WIFI_STATE_CHANGED。当无法发送请求时,我会存储请求。如果连接变为活动状态,那么我将发送缓存的请求。

What is the best way to implement this behavior?

制作Volley requests from a bound Service,如果Activity还在前台,就把结果传回给Activity

编辑:

won't this be a problem if the user decides to close the application?

这就是 您需要使用 Service 的原因。如果您从 Activity 执行此操作,即使 Activity 被取消,请求也会继续。如果您的 Volley 请求表示为匿名 class 实例,它会继续持有对外部 Activity class 的隐式引用,这会导致内存泄漏/异常。

使用 Handler 或服务持续检查您的 Internet 连接,如果是,则将数据发送到服务器,否则不要发送。