okhttp3在Fragment中的使用

来源:互联网 发布:淘宝网络营销 编辑:程序博客网 时间:2024/05/29 16:14

由于okhttp3的异步请求,需要开启线程,之前在activity中都是直接调用UI线程,可是发现在fragment中不行,现在记录下代码:

 private void initBanner() {        OkHttpClient mOkHttpClient = new OkHttpClient();        RequestBody formBody = new FormBody.Builder().build();        Request request = new Request.Builder()                .url(url)                .post(formBody)                .build();        Call call = mOkHttpClient.newCall(request);        call.enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                Toast.makeText(getActivity(), "网络连接失败", Toast.LENGTH_SHORT).show();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                final String str = response.body().string();                new Thread(new Runnable() {                    @Override                    public void run() {                        Advertisement advertisement = new Gson().fromJson(str, Advertisement.class);                        int resultCode = advertisement.getResultCode();                        if (resultCode == 100) {                            adList = advertisement.getadvertisement1();                            for (int i = 0; i < adList.size(); i++) {                                String pic = adList.get(i).getPicture();                                imageUrl.add(ImageBasePath + pic);                            }                        } else {                            Toast.makeText(getActivity(), advertisement.getResultMessage(), Toast.LENGTH_SHORT).show();                        }                    }                }).start();            }        });    }
原创粉丝点击