Android中线程通信的方式
Android 跨线程通信
android 中是不允许在主线程中进行 网络访问等事情的因为UI如果停止响应5秒左右的话整个应用就会崩溃,到Android4.0 以后 Google强制规定,与网络相关的应用必须在子线程中调用
实现线程间通信的方法
线程间通信的方式图解
Handler和Message 实现线程间的通信
Handler myHandler = new android.os.Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.i(TAG, "调用UI线程");
String temp = (String) msg.obj;
tv_Source.setText(temp);
}
};
//发送消息到handler更新UI
android.os.Message msg = new Message();
msg.obj = "我是要发送的信息";
myHandler.sendMessage(msg);
使用Google封装好的API进行线程间中通信
/*
*这种方式仅仅推荐在只是更新UI的的情况下使用
*如果想要携带是数据得话还得使用Handler和Message的方式
*使用方式:在想要更新UI时候直接使用此方法即可
*/
runOnUiThread(new Runnable() {
@Override
public void run() {
iv_IMG.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath()));
}
});
仅将学习的笔记分享给大家,如果错误之处还请大家指正。