当前位置:   article > 正文

Android- Handler封装工具类_android handler封装

android handler封装

自定义封装Handle异步发送、接收消息工具类,使用仅需两行代码

  1. public class BaseHandleMessage {
  2.     private final ArrayList<Handler> mUpdateHandlers;
  3.     private static BaseHandleMessage mInstance;
  4.     public ArrayList<Handler> getmUpdateHandler() {
  5.         return mUpdateHandlers;
  6.     }
  7.     private BaseHandleMessage() {
  8.         mInstance = this;
  9.         mUpdateHandlers = new ArrayList<>();
  10.     }
  11.     public synchronized static BaseHandleMessage getInstance() {
  12.         if (mInstance == null)
  13.             mInstance = new BaseHandleMessage();
  14.         return mInstance;
  15.     }
  16.     public void addBaseHandleMessage(Handler handler) {
  17.         if (handler != null) {
  18.             mUpdateHandlers.add(handler);
  19.         }
  20.     }
  21.     public void removeBaseHandleMessage(Handler handler) {
  22.         if (handler != null) {
  23.             mUpdateHandlers.remove(handler);
  24.         }
  25.     }
  26.     public void setHandlerMessage(int what, Object objsect) {
  27.         for (int i = 0; i < mUpdateHandlers.size(); i++) {
  28.             Handler handler = mUpdateHandlers.get(i);
  29.             Message msg = Message.obtain();
  30.             msg.obj = objsect;
  31.             msg.what = what;
  32.             handler.sendMessage(msg);
  33.         }
  34.     }
  35.     public void sendMessageDelayed(int what, Object objsect, long delayMillis) {
  36.         for (int i = 0; i < mUpdateHandlers.size(); i++) {
  37.             Handler handler = mUpdateHandlers.get(i);
  38.             Message msg = Message.obtain();
  39.             msg.obj = objsect;
  40.             msg.what = what;
  41.             handler.sendMessageDelayed(msg, delayMillis);
  42.         }
  43.     }
  44. }
  1. //发送Handler--->
  2. BaseHandleMessage.getInstance().setHandlerMessage(int what, Object objsect);
  1. //接收Handler--->
  2. Handler handler = new Handler(message -> {
  3. if (message.what == WHAT) {
  4. //doing something()
  5. }
  6. return false;
  7. });
  8. BaseHandleMessage.getInstance().addBaseHandleMessage(handler);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/319217
推荐阅读
相关标签
  

闽ICP备14008679号