package cn.edu.siso.async;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.ImageView;
import android.widget.Toast;
public class ThreadDownloadImageActivity extends Activity {
/** Called when the activity is first created. */
private AsyncLoadHandler asynHandler;
private int id1;
private ImageView img2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.threaddownload);
id1 = R.id.ivThread1;
img2 = (ImageView) findViewById(R.id.ivThread2);
// 定义后台下载线程
AsyncLoadPicThread1 asyncLoadPicThread1 = new AsyncLoadPicThread1();
asynHandler = new AsyncLoadHandler();
// 启动后台下载线程
asyncLoadPicThread1.start();
// 定义后台下载线程
AsyncLoadPicThread2 asyncLoadPicThread2 = new AsyncLoadPicThread2();
// 启动后台下载线程
asyncLoadPicThread2.start();
}
// 下载图片线程1
public class AsyncLoadPicThread1 extends Thread {
private String url = "http://img.52fuqing.com/upload/editor/2017-2-24/2017224111925866e5cze.png";
@Override
public void run() {
try {
Drawable drawable = Drawable.createFromStream(
new URL(url).openStream(), "01.jpg");
Message message = asynHandler.obtainMessage();
message.arg1 = id1;
message.obj = drawable;
message.what = 1;
asynHandler.sendMessage(message);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 下载图片线程2
public class AsyncLoadPicThread2 extends Thread {
private String url = "http://img1.gtimg.com/19/1905/190582/19058261_1200x1000_281.jpg";
@Override
public void run() {
try {
Drawable drawable = Drawable.createFromStream(
new URL(url).openStream(), "02.jpg");
Message message2 = asynHandler.obtainMessage();
// message.arg1 = id1;
message2.obj = drawable;
message2.what =2;
asynHandler.sendMessage(message2);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 图片下载完成通知主线程显示图片
public class AsyncLoadHandler extends Handler {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
((ImageView) ThreadDownloadImageActivity.this
.findViewById(msg.arg1))
.setImageDrawable((Drawable) msg.obj);
}
if (msg.what == 2) {
img2.setImageDrawable((Drawable) msg.obj);
}
}
}
// 捕获back按钮,关闭activity
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return false;
}
}