我正在使用 loopj 发布一些数据。一切正常,但我有一些问题:
处理没有可用互联网连接的情况的好方法是什么?目前我只是在一段时间后重试,但是像这样,我必须将数据存储在本地,因为如果用户关闭应用程序甚至关闭他的设备,数据将不会被发送。也许这是唯一的方法,或者您知道另一种方法吗?
当我发布一些数据并且连接不好时,它有时会停止。loopj 是否有某种超时?你怎么能改变呢?你怎么知道它没有提交?
我只需要一种极其稳定的方式来发布数据。您是否建议使用 loopj 以外的其他库?
一种可靠传输数据的方法:
从 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;
您可以在 onFailure() 失败时覆盖它,并处理那里的情况。
@Override
public void onFailure(Throwable e) {
Log.d(TAG, e.toString());
}
是的,AsyncHttpClient 中存在超时,默认为 10 秒。您可以通过setTimeout(int)更改它。