2013-02-27 2 views
1

일부 데이터를 게시하려면 loopj를 사용하고 있습니다. 모든 것이 잘 작동하지만 몇 가지 문제가 있습니다Android loopj : 게시 데이터

  • 에는 인터넷 연결을 사용할 수없는 경우를 처리하는 좋은 방법은 무엇입니까? 사용자가 앱을 닫거나 기기를 종료해도 데이터가 전송되지 않기 때문에 데이터를 로컬에 저장해야합니다. 어쩌면 그것이 유일한 방법 일 수도 있고 아니면 다른 방법을 알 수 있습니까?

  • 일부 데이터를 게시 할 때 연결 상태가 좋지 않을 때가 있습니다. loopj에 어떤 종류의 타임 아웃이 있습니까? 어떻게 바꿀 수 있니? 그리고 그것이 제출되지 않았다는 것을 어떻게 알 수 있습니까?

데이터를 게시하는 데 매우 안정적인 방법이 필요합니다. loopj가 아닌 다른 라이브러리를 사용 하시겠습니까?

답변

0

실패했을 때 onFailure()를 재정의하고 상황을 처리 할 수 ​​있습니다.

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

예, AsyncHttpClient에는 시간 초과가 있으며 기본적으로 10 초입니다. setTimeout(int)으로 변경할 수 있습니다.

1

안정적으로 전송하는 방법 데이터 :

    SQLite 데이터베이스에서
  1. 삽입 요청
  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;