博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
延时操作
阅读量:6344 次
发布时间:2019-06-22

本文共 995 字,大约阅读时间需要 3 分钟。

hot3.png

这几天一直在做视频播放器,其中要让状态栏和媒体控制器,出现后不点击屏幕的话,5秒后自动消失,这里要用到延时操作

第一种方法

private void noshow(){    new Handler().postDelayed(new Runnable(){        if(isShow()){//这是我需要的一个判断             down();//这是我需要执行的一个动画             getActivity().getWindow().addFlags(WindowManager.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);                     }    },5000);}

但是这个第一种方法会有一个问题,就是多次点击,第一次这个可能在第二次isshow为真时执行

第二种方法

就是通过handler延时发送消息

在每次点击的前先取消消息,再发送,这样如果有前次的消息还没有发送,那么就直接取消,发送这次的

mHandler.removeMessages(UPDATE_NOSHOW);//取消消息mHandler.sendEmptyMessageDelayed(UPDATE_NOSHOW, 5000);//5秒后发送

然后在接收消息的地方做处理

private Handler mHandler = new Handler(){    public void handleMessage(android.os.Message msg) {         case UPDATE_NOSHOW:         if(isShow()){             down();//这是我需要执行的一个动画             getActivity().getWindow().addFlags(WindowManager.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);         }          break;          default:          break;    }}

转载于:https://my.oschina.net/u/2531348/blog/615818

你可能感兴趣的文章
央行参事盛松成:若只应用在虚拟货币,区块链就没有前途
查看>>
Maven项目导入到Eclipse时Build出现the user operation is waiting for building workspace to complete的问题解决...
查看>>
D1net阅闻:相比2017年全年 LinkedIn2018年区块链相关职位空缺增长151%
查看>>
iOS APP免费开发账号真机调试教程
查看>>
从人工智能看区块链 ,一再重复的历史 | 正本清源谈区块链
查看>>
硬科技+文化娱乐,且看9月份的南京如何玩转
查看>>
JavaScript中几个相似方法对比
查看>>
LINUX 11G RAC ASM磁盘组在线增加磁盘扩容
查看>>
内核移植(二)——操作系统
查看>>
Linux之 手动释放内存
查看>>
作业输出文档维护
查看>>
0 C#安装Windows服务需要“设置服务登录”
查看>>
ArcMap中条件语句的bug
查看>>
EventLoop和EventLoopGroup
查看>>
github团队合作管理代码
查看>>
记录一次帮网友调试ssh信任关系的过程
查看>>
eclipse中org.tigris.subversion.javahl.ClientException:RA layer request failed
查看>>
Linux 文件解压格式
查看>>
网页中嵌入百度地图
查看>>
iOS UITextField或UITextView的内容是否为空
查看>>