配合上一篇文章:全局飘屏 Android 飘屏 全局、自定义_小何Android的博客-CSDN博客
直接上代码吧:
private ConcurrentLinkedQueue<VipMsgEvent> mGifQueue;
private Handler mHandler;
private boolean mShowGif;
mGifQueue = new ConcurrentLinkedQueue<>();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == WHAT_ANIM) {
mShowGif = false;
if (mGifQueue != null) {
VipMsgEvent vipMsgEvent = mGifQueue.poll();
FloatingDialogUitl floatingDialogUitl = new FloatingDialogUitl();
assert vipMsgEvent != null;
floatingDialogUitl.loadingDialog(mContext, vipMsgEvent,
new FloatingDialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog) {
if (mHandler != null) {
mHandler.sendEmptyMessageDelayed(WHAT_ANIM, 2000);
}
}
});
}
}
}
};
public void showFloating(VipMsgEvent vipMsgEvent) {
if (vipMsgEvent != null) {
if (mShowGif) {
if (mGifQueue != null) {
mGifQueue.offer(vipMsgEvent);
}
} else {
mShowGif = true;
FloatingDialogUitl floatingDialogUitl = new FloatingDialogUitl();
assert vipMsgEvent != null;
floatingDialogUitl.loadingDialog(mContext, vipMsgEvent,
new FloatingDialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog) {
if (mHandler != null) {
mHandler.sendEmptyMessageDelayed(WHAT_ANIM, 2000);
}
}
});
}
}
}