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

仅将学习的笔记分享给大家,如果错误之处还请大家指正。

posted @ 2017-05-27 16:34  鲁迅认识的那只猹  阅读(386)  评论(0编辑  收藏  举报