android消息机制详解,[android] android消息机制入门详解

packagecom.tsh.internetpic;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.net.URL;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.text.TextUtils;importandroid.view.View;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.Toast;public class MainActivity extendsActivity {protected static final int CHANGE_UI = 0;protected static final int ERROR = 1;privateEditText et_path;privateImageView iv_pic;//主线程里面定义消息处理器

public Handler handler = newHandler() {

@Overridepublic voidhandleMessage(Message msg) {if(msg.what==CHANGE_UI){//更改ui

Bitmap bm=(Bitmap) msg.obj;

iv_pic.setImageBitmap(bm);

}else if(msg.what==ERROR){

String showMsg=(String) msg.obj;

Toast.makeText(MainActivity.this, showMsg, 0).show();

}

}

};

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

et_path=(EditText) findViewById(R.id.et_path);

iv_pic=(ImageView) findViewById(R.id.iv_pic);

}//点击

public voidgetInternetImg(View v) {final String path =et_path.getText().toString().trim();if(TextUtils.isEmpty(path)) {

Toast.makeText(this, "图片路径不能为空", 0).show();

}else{//开一个子线程

newThread() {

@Overridepublic voidrun() {try{

URL url= newURL(path);

HttpURLConnection conn=(HttpURLConnection) url

.openConnection();

conn.setRequestMethod("GET");

conn.setConnectTimeout(5000);

conn.setRequestProperty("User-Agent", "");int code =conn.getResponseCode();if (code == 200) {

InputStream is=conn.getInputStream();

Bitmap bp=BitmapFactory.decodeStream(is);//发送消息

Message msg = newMessage();

msg.what=CHANGE_UI;

msg.obj=bp;

handler.sendMessage(msg);

}else{

Message msg= newMessage();

msg.what=ERROR;

msg.obj= "网络连接错误";

handler.sendMessage(msg);//Toast.makeText(this, "网络连接超时", 0).show();

}

}catch(Exception e) {

e.printStackTrace();

}

}

}.start();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值