1

我正在使用 loopj 发布一些数据。一切正常,但我有一些问题:

  • 处理没有可用互联网连接的情况的好方法是什么?目前我只是在一段时间后重试,但是像这样,我必须将数据存储在本地,因为如果用户关闭应用程序甚至关闭他的设备,数据将不会被发送。也许这是唯一的方法,或者您知道另一种方法吗?

  • 当我发布一些数据并且连接不好时,它有时会停止。loopj 是否有某种超时?你怎么能改变呢?你怎么知道它没有提交?

我只需要一种极其稳定的方式来发布数据。您是否建议使用 loopj 以外的其他库?

4

2 回答 2

1

一种可靠传输数据的方法:

  1. 在 SQLite 数据库中插入请求
  2. 发出 POST 请求
  3. 删除适当的行 onSuccess()
  4. 当互联网恢复时重试 SQLite 上的待处理行 (android.net.conn.CONNECTIVITY_CHANGE)

从 AsyncHttpClient 类:

private static final int DEFAULT_MAX_CONNECTIONS = 10;
private static final int DEFAULT_SOCKET_TIMEOUT = 10 * 1000;
private static final int DEFAULT_MAX_RETRIES = 5;
private static final int DEFAULT_SOCKET_BUFFER_SIZE = 8192;
于 2013-07-10T20:57:25.777 回答
0

您可以在 onFailure() 失败时覆盖它,并处理那里的情况。

@Override
public void onFailure(Throwable e) {
    Log.d(TAG, e.toString());
}

是的,AsyncHttpClient 中存在超时,默认为 10 秒。您可以通过setTimeout(int)更改它。

于 2013-03-21T10:11:55.840 回答