做过Android开发的童鞋们都知道,我们通常会用Toast来做一些页面提示,其用法也很简单,此处便不再累赘。可是假如我们的应用是在锁屏界面之上需要显示提示呢,这时候使用Toast就比较蛋疼了,你会发现不论怎样它都不会弹出来。查看Toast的源码,代码不多,show()方法里是通过一个handler去在Toast所在线程中添加了handleshow()方法去处理事件,然后在handleshow()方法中很容易就能在最后发现有这么一句:
那我们就去看看这个方法呗,就在下面:
google源码的代码规范做的还是相当不错的,不理解每行代码的含义,我们也能大概知道这段主要是对toast的显示隐藏做了一个判断。我们无法去修改Toast的源码,这样那就只能另辟蹊径了,这就不得不提到另外一个提示性的功能控件了popWindow。
最近也是正好在项目中使用到了这个控件,发现其功能还是蛮强大的,在位置上的控制上也非常的得心应手,其基本的用法在这里我就不多说了,大家可以自行百度。接下来的事情就非常简单了,照着Toast的样式完成popwindow的布局就行了。但是我们的popwindow是不会自动显示几秒就自动隐藏起来的,这个简单,我们也去定义一个handler来搞定它。在这个handler里我们处理两个消息,即popwindow的显示与隐藏即可,在show()方法中我们利用handler去同时发送两个消息,一个不延时的去显示,另一个延时的去隐藏掉popwindow,这样就达到了控制popwindow提示几秒后自动又消失的目的。