package com.example.android.networktest; import android.app.ProgressDialog; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class MainActivity extends AppCompatActivity { private Button button; private ImageView imageView; private ProgressDialog progressDialog; private final String IMAGE_PATH = "http://pic1.nipic.com/2008-12-25/2008122510134038_2.jpg"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); imageView = (ImageView) findViewById(R.id.imageView); progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("提示信息"); progressDialog.setMessage("正在下载中,请稍后..."); progressDialog.setCancelable(false); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new MyAsyncTask().execute(IMAGE_PATH); } }); } public class MyAsyncTask extends AsyncTask<String, Integer, Bitmap> { @Override protected void onPreExecute() { super.onPreExecute(); Log.e("MainActivity", "onPreExecute"); progressDialog.show(); } @Override protected Bitmap doInBackground(String... params) { InputStream is = null; Bitmap bitmap=null; Log.e("MainActivity", "doInBackground"); ConnectivityManager connMgr=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo=connMgr.getActiveNetworkInfo(); if (networkInfo!=null && networkInfo.isConnected() && networkInfo.getType()==ConnectivityManager.TYPE_WIFI) { try { URL url = new URL(params[0]); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(10000); conn.setConnectTimeout(15000); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.connect(); int code = conn.getResponseCode(); is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); conn.disconnect(); } catch (IOException e) { e.printStackTrace(); } finally { if (is!=null) { try { is.close(); }catch (IOException e) { e.printStackTrace(); } } } } return bitmap; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } @Override protected void onPostExecute(Bitmap result) { super.onPostExecute(result); Log.e("MainActivity", "onPostExecute"); imageView.setImageBitmap(result); progressDialog.dismiss(); } } }