2017-05-03 4 views
0

응답을 반환하는 데 약 50 초가 걸리는 Java API가 있으며 API의 개선이 불가능합니다. 사용자는 응답이 완료되고 API를 사용하는 Android 앱에서 일종의 차단제 일 때까지 다음 페이지를 진행할 수 없습니다. 이에 대한 몇 가지 대안을 제안하십시오.안드로이드 앱에서 응답 시간이 빠른 API에 액세스하는 방법은 무엇입니까?

예 : 우리는 두 개의 테이블을 가질 수 있으며 API는 더 많은 시간이 걸리는 쿼리 결과를 기다리는 대신 테이블에서 데이터를 반환하며 백그라운드에서 쿼리를 실행하고 테이블 데이터를 업데이트하기 위해 스레드를 생성 할 수 있습니다 그 결과. 응답 데이터의 타임 스탬프를 기반으로 android app은 데이터가 오래되었거나 최신임을 알 수 있으며 오래된 데이터의 경우 최신 데이터를 얻기 위해 얼마 후에 다시 요청할 수 있습니다.

질문이나 접근 방법이 명확하지 않은 경우 알려주십시오.

답변

0

그런 일을하는 구체적인 방법이 있습니다. 안드로이드에는 Loader이라는 것이 있습니다. CursorLoader은 콘텐츠 제공 업체에 사용됩니다. 및 API에 대한 AsyncTaskLoader

0

당신은 배경 서비스에 그것을 할 수

compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 

Smaple 응답이이

if (BuildConfig.DEBUG) { 
    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(); 
    httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
    httpClient.addInterceptor(httpLoggingInterceptor); 
} 

또한 Gradle을 응용 프로그램 수준이 종속성을 추가

Date: Fri, 12 Aug 2016 07:33:23 GMT 
OkHttp-Sent-Millis: 1470987074283 
OkHttp-Received-Millis: 1470987074422 
+0

android studio에서 logcat을 확인하십시오. –

0

을 시도 호출합니다. 브로드 캐스트를 통해 응답을받을 때 UI 스레드에 알립니다.

관련 문제