是的,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
來處理消息和更新視圖了。