2016-07-14 2 views
1

최근 Retrofit으로 전환했고 새롭게 추가 된 개념을 처음 접했습니다. 나는 그것에 관하여 밖으로 찾아 냈다 Here 그리고 아주 재미있는 찾아 내 일을 더 쉽고 더 간단한시켰다.dobot (AysncTask 클래스)에서 Retrofit을 호출하는 방법

모든 HTTP 요청은 위의 튜토리얼에서 설명한 AsyncTask 확장 클래스 에 있어야하므로 개조 호출이 기본 UI 스레드 자체에서 이루어진 것으로 나타났습니다.

AsyncTask 클래스에서 동일한 자습서를 구현하기가 어렵습니다. 어떻게해야합니까?

내 응용 프로그램이 느린 베팅하고 I 프레임 1076 retrofit2 2 가지 방법이 있습니다

+3

Retrofit은 이미 백그라운드 스레드에서 http 요청을 처리합니다. – Eenvincible

+2

그리고 그것의'enqueue' 메쏘드 –

+0

아마도'execute' 메쏘드를 호출 할 것입니다, 그것은 주 스레드에서 실행되고 작업이 완료 될 때까지 차단합니다. –

답변

0

을 건너 뛸 수 호출마다 갱신을 위해 나를 도와주세요, 첫 번째는 동 기적 요청을 호출 실행합니다. 두 번째는 비동기 적으로 요청을 대기시킬 enqueue 메소드입니다.

+0

자습서를 보는 데 사용한 적이 있습니까? –

0

모든 HTTP 요청 당신은 오해 AsyncTask를 확장 한 클래스

에 있어야 규칙에 따라 - 는 UI 스레드에서 실행할 수 없습니다 네트워크 요청. AsyncTask는이를 수행하는 한 가지 방법 일뿐입니다. Retrofit/OkHttp는 또 하나, Volley와 AsyncHttpClient는 다른 것들입니다. 이 튜토리얼은 개조를 위해 특별히 때문에

내가 어려운 AsyncTask를 클래스

에서 같은 튜토리얼을 실행에 발견하고 아마 그렇습니까?

어떻게하면됩니까?

당신이 (필요한 경우) HTTP 요청

  • 에게
  • 읽기를 추가 HTTP 헤더를 구축 AsyncTask를

    • 함께 던져해야 함을주는 무슨 개조의 높은 수준의 개요 InputSteam을 문자열로 변환
    • JSON 변환 문자열
    • JSON에서 Java 로의 개체 변환
    • 기본 스레드에 대한 콜백

    이제 모든 것을 이해할 수 없다면 복잡해 보입니다. 즉, 당신은 단지 Retrofit에 충실해야한다고 말했다. enqueue

  • 관련 문제