Android 之Handler是如何正确使用

复制代码
 1 public class MainActivity extends BaseActivity {
 2 
 3     //声明
 4     private ButtonStateHandler mHandler;
 5 
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         mBinding = ActivityMainBinding.inflate(getLayoutInflater());
10         //初始化
11         mHandler = new ButtonStateHandler(new WeakReference<>(this));
12         setContentView(mBinding.getRoot());
13     }
14 
15     /**
16      * Handler的正确写法
17      */
18      public static class ButtonStateHandler extends Handler {
19         private WeakReference<MainActivity> mWeakReference;
20 
21         public ButtonStateHandler(WeakReference<MainActivity> activity) {
22             this.mWeakReference = activity;
23         }
24 
25         @Override
26         public void handleMessage(Message msg) {
27             super.handleMessage(msg);
28             switch (msg.what) {
29                 case 1001:
30                     mWeakReference.get().mBinding.btnSendOrder.setText((String) msg.obj);
31                     break;
32                 default:
33                     break;
34             }
35         }
36     }
37 
38     /**
39      * Handler销毁
40      */
41     @Override
42     protected void onDestroy() {
43         super.onDestroy();
44         mHandler.removeCallbacksAndMessages(null);
45     }
46 }
复制代码

 

posted @   宇少vlog  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2014-06-18 Sql Server 在已知表中插入、删除、修改某一列操作
2014-06-18 Sql Server 2005 去掉字段中的空格
点击右上角即可分享
微信分享提示