实例化方式
有几种实例化方式已经过时,需要使用public Handler(@NonNull Looper looper, @Nullable Callback callback)
的实例化方式。
looper可以从主线程里面获取.
1 | getMainLooper() |
callback除了直接使用new构建,也可以直接在主类上进行实现implements Handler.Callback
接口,实现 public boolean handleMessage(@NonNull Message msg)
函数。
然后初始化方式为:
1 | handler = new Handler(getMainLooper(), this); |
调用方式
需要发送Message对象让handler进行处理有一下几种方式。
- 直接构建Message对象
1 | Message msg = new Message(); |
- 使用Message的obtain方法
1 | handler.sendMessage(Message.obtain(handler, MSG_REFRESH_WIFI_INFO)); |
- 使用handler的obtainMessage方法
1 | handler.obtainMessage(MSG_REFRESH_WIFI_INFO); |