做過Android開發(fā)的童鞋們都知道,我們通常會用Toast來做一些頁面提示,其用法也很簡單,此處便不再累贅??墒羌偃缥覀兊膽?yīng)用是在鎖屏界面之上需要顯示提示呢,這時候使用Toast就比較蛋疼了,你會發(fā)現(xiàn)不論怎樣它都不會彈出來。查看Toast的源碼,代碼不多,show()方法里是通過一個handler去在Toast所在線程中添加了handleshow()方法去處理事件,然后在handleshow()方法中很容易就能在最后發(fā)現(xiàn)有這么一句:

handleShow()方法
那我們就去看看這個方法唄,就在下面:

Toast源碼
google源碼的代碼規(guī)范做的還是相當(dāng)不錯的,不理解每行代碼的含義,我們也能大概知道這段主要是對toast的顯示隱藏做了一個判斷。我們無法去修改Toast的源碼,這樣那就只能另辟蹊徑了,這就不得不提到另外一個提示性的功能控件了popWindow。
最近也是正好在項目中使用到了這個控件,發(fā)現(xiàn)其功能還是蠻強(qiáng)大的,在位置上的控制上也非常的得心應(yīng)手,其基本的用法在這里我就不多說了,大家可以自行百度。接下來的事情就非常簡單了,照著Toast的樣式完成popwindow的布局就行了。但是我們的popwindow是不會自動顯示幾秒就自動隱藏起來的,這個簡單,我們也去定義一個handler來搞定它。在這個handler里我們處理兩個消息,即popwindow的顯示與隱藏即可,在show()方法中我們利用handler去同時發(fā)送兩個消息,一個不延時的去顯示,另一個延時的去隱藏掉popwindow,這樣就達(dá)到了控制popwindow提示幾秒后自動又消失的目的。