异步,网络判断

package com.bawei.day03text;

import android.content.Context;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

import com.bawei.adapter.MyAdapter;
import com.bawei.bean.Data;
import com.bawei.bean.JsonBean;
import com.google.gson.Gson;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
private ListView listview;
private int page = 1;
private String path = “http://www.xieast.com/api/news/news.php”;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listview = findViewById(R.id.listview);

    MyAsyncTask task = new MyAsyncTask();

    task.execute(path + "?page=" + page);


}

private class MyAsyncTask extends AsyncTask<String, Integer, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Toast.makeText(MainActivity.this, "请稍等", Toast.LENGTH_SHORT).show();
    }

    @Override
    protected String doInBackground(String... parmas) {

        String uri = parmas[0];

        try {
            URL url = new URL(uri);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            int responseCode = conn.getResponseCode();
            if (responseCode == 200) {
                InputStream stream = conn.getInputStream();
                ByteArrayOutputStream stream1 = new ByteArrayOutputStream();

                byte[] buffer = new byte[1024];
                int len = 0;
                while ((len = stream.read(buffer)) != -1) {
                    stream1.write(buffer, 0, len);
                }
                publishProgress(10, 2);
                stream.close();
                stream1.close();
                String json = stream1.toString();
                return json;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // super.onProgressUpdate(values);
        Log.i("abc", values[0] + "," + values[1]);
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        Log.i("abc", s);

        Gson gson = new Gson();

        JsonBean fromJson = gson.fromJson(s, JsonBean.class);
        ArrayList<Data> data = fromJson.getData();

        MyAdapter adapter = new MyAdapter(MainActivity.this, data);

        listview.setAdapter(adapter);

    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值