Handler:使用方式
16lz
2021-01-26
文章目录
- 1、定义
- 2、作用
- 3、工作流程
- 4、具体使用
1、定义
- 定义:Android 消息传递机制。
2、作用
- 作用:将工作线程更新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(); }}
更多相关文章
- Android(安卓)对话框详解(一)
- Android(安卓)绘制一个Loading动画__向图片中缓慢填充颜色,从而
- Android中Handler消息处理机制原理
- EventBus使用详解(二)——EventBus使用进阶
- 关于Android(Java)创建匿名线程
- android studio 开发工具
- android解决:使用多线程和Handler同步更新UI
- Android(安卓)的消息机制(2)
- Android异步更新UI的方式之使用AsyncTask异步任务