是的,Android的Handler
类支持自定义视图。你可以通过以下步骤在自定义视图中使用Handler
:
Handler
对象:public class CustomView extends View {
private Handler handler;
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
// 处理消息的代码
return false;
}
});
}
}
Handler
发送和处理消息:// 发送消息
handler.sendMessage(handler.obtainMessage(1, "Hello from CustomView"));
// 处理消息
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case 1:
String message = (String) msg.obj;
// 更新视图的代码
break;
}
return false;
}
onAttachedToWindow()
和onDetachedFromWindow()
,分别添加和移除消息处理程序:@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
// 添加消息处理程序
getHandler().getLooper().addThreadHandler(handler);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// 移除消息处理程序
getHandler().getLooper().removeThreadHandler(handler);
}
这样,你就可以在自定义视图中使用Handler
来处理消息和更新视图了。