android - OkhttpUtil回调解析成功,怎么传出来?
迷茫
迷茫 2017-04-17 17:46:45
0
4
470

代码如下,先会去执行returnUrl,等到第二次调用getHeadUrl该方法才会去到onResponse返回数据。


public static String getHeadUrl(long userid) {
    final String url = ServiceResponseURL.GetLogoUrl(userid);
    OkHttpUtils.get().url(url).build().execute(new StringCallback() {
        @Override
        public void onError(Call call, Exception e, int id) {
            returnUrl = null;
        }
        @Override
        public void onResponse(String response, int id) {
            JSONObject all = JSON.parseObject(response);
            returnUrl = all.getString("imageUrl");
        }
    });
    return returnUrl;
}
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(4)
巴扎黑

으아악

Callback밖으로 던져보세요. 또는 Response을 직접 받아

처리하세요.
小葫芦

데이터를 내보내려면 동기화를 직접 사용하세요.

execute()에는 콜백 매개변수가 없으며, .execute() 메서드가 종료된 후 반환 결과가 직접 생성됩니다.

으아악

문서 GitHub를 잘 살펴보세요

PHPzhong

답변은 위에 3가지 정도 있습니다.

  1. 동기 차단 방식을 사용하여 반환 값을 직접 가져옵니다.

  2. 비동기식에서 동기식으로 메시지가 콜백으로 전송되고 다른 스레드에서 처리됩니다.

  3. 비동기 처리는 콜백에서 직접 수행됩니다.
    무엇을 하느냐에 따라 다릅니다. .

左手右手慢动作

= =~분명히 콜백 함수가 실행되기 전에 반환을 하셨군요... 외부에 새 StringCallback을 작성하고 headerUrl 처리를 콜백에 넘기는 것이 좋습니다. . 아니면 이렇게 작성하고 setHeaderUrl(headerUrl)을 호출하여 headerUrl을 전달하세요~~

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿