异步,网络判断

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);

    }
}

}

猜你喜欢

转载自blog.csdn.net/weixin_44305652/article/details/85317022