handler訊息機制實現延時顯示或延時關閉
阿新 • • 發佈:2019-02-18
在一個類中可以定義一個handler變數,複寫其中的handleMessage方法,可以定義這個handler能夠接收的訊息,並定義在收到各種訊息時需要執行的動作。
private Handler uiHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_CLOSE_TOASTVIEW:
dismiss();
break ;
}
super.handleMessage(msg);
}
};
在需要發起訊息的方法(如下)中,呼叫sendmessage方法,這樣就可以將訊息加入訊息佇列,handler接收到訊息後就可以進行處理,sendMessageDelayed可以用於延時操作。
private void dismiss(int mDuration) {
Message msg = uiHandler.obtainMessage();
msg.what = MSG_CLOSE_TOASTVIEW;
**uiHandler.sendMessageDelayed(msg, mDuration);**
}