文章目录

            • 1、定义
            • 2、作用
            • 3、工作流程
            • 4、具体使用

1、定义
  1. 定义:Android 消息传递机制。
2、作用
  1. 作用:将工作线程更新UI操作信息传递到UI线程,在UI线程更新UI,保证多线程并发更新UI时线程安全。
3、工作流程

4、具体使用
public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private TextView mMessageTv;    // 1、创建 Handler 对象,发送和处理消息(存在内存泄漏问题)    private Handler mHandler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 1:                    mMessageTv.setText("线程:" + msg.obj);                    break;                case 2:                    mMessageTv.setText("线程:" + msg.obj);                    break;                default:                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mMessageTv = findViewById(R.id.mMessageTv);        findViewById(R.id.mSendMessageBtn).setOnClickListener(this);        findViewById(R.id.mPostBtn).setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.mSendMessageBtn:                sendMessage();                break;            case R.id.mPostBtn:                post();                break;        }    }    private void sendMessage(){        // 2、创建子线程        new Thread() {            @Override            public void run() {                try {                    Thread.sleep(3000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                // 3、创建 Message                Message msg = Message.obtain();                msg.what = 1; // 消息存放标识                msg.obj = "A"; // 消息存放对象                // 4、发送 Message 给 Handler 处理                mHandler.sendMessage(msg);            }        }.start();    }    private void post(){        // 2、创建子线程        new Thread() {            @Override            public void run() {                try {                    Thread.sleep(3000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                // 3、mHandler 的 post 方法发送处理消息                mHandler.post(new Runnable() {                    @Override                    public void run() {                        mMessageTv.setText("线程:B");                    }                });            }        }.start();    }}

更多相关文章

  1. Android(安卓)对话框详解(一)
  2. Android(安卓)绘制一个Loading动画__向图片中缓慢填充颜色,从而
  3. Android中Handler消息处理机制原理
  4. EventBus使用详解(二)——EventBus使用进阶
  5. 关于Android(Java)创建匿名线程
  6. android studio 开发工具
  7. android解决:使用多线程和Handler同步更新UI
  8. Android(安卓)的消息机制(2)
  9. Android异步更新UI的方式之使用AsyncTask异步任务

随机推荐

  1. Android(安卓)Parcelable理解与使用(对象
  2. create custom launcher icon 细节介绍
  3. Android(安卓)SQLite总结(一)
  4. android之TimePicker
  5. android task与back stack 开发文档翻译
  6. ActionBar简单使用介绍和Tab切换的应用
  7. 解决Android(安卓)5.0以上版本Button自带
  8. 谈谈android大众常用的五种布局?
  9. android —— 自定义控件 利用 ViewPage
  10. eclipse快捷鍵