編輯:關於Android編程
最近在做鬧鐘的一個小程序,發現了一個問題。這個問題在網上都沒有找到合適的答案,最後還是在鬧鐘的源碼裡面找到答案的。
相信很多人都和我一樣,都遇到了這樣的問題。
當你設置好鬧鐘以後,鬧鐘會准時觸發,然後會在標題欄頂部,彈出提示框,以表示鬧鐘被觸發了。
可是當我們手動設置手機系統的時間,把時間往後面調,會發現過期的鬧鐘也被觸發了。這個卻不是我們想要的。我 以前的想法是監聽鬧鐘的TIME_SET時間,搶在系統觸發鬧鐘之前把我們設置的鬧鐘給取消掉,這樣就不會有過期的鬧鐘被觸發了。可惜,這樣是不行的。系統的鬧鐘還是被觸發了。頭痛不已。
後來,看了android自帶的源碼之後,才煥然大悟阿,原來這麼簡單的問題被我搞的這麼的復雜。
主要的解決辦法就是:
手動設置時間以後,系統會觸發我們設置的鬧鐘,一般我們都是用receiver用作pendingintent的,我們只要在receiver裡面判斷一下當前時間和我們設置的這個鬧鐘的時間之間差值就可以解決這個問題了。如果差值過大,我們就不給出鬧鐘提示就可以了。
老覺得是系統錯了,其實和系統就沒有什麼關系。他要觸發你的鬧鐘就讓它觸發好了,只要你判斷一下當前時間,是不是你的鬧鐘被觸發的時間就可以了啊。如果是,那就給出鬧鐘提示,如果不是,當前時間和鬧鐘時間差很遠,那就不要給出鬧鐘提示就可以啊,就這麼簡單。真的和系統沒有什麼關系。
最近忙著項目,很久沒有總結提交博客和提交github了。接下來我打算整理下項目中用到的比較有用的發表到博客上。也打算總結一些關於設計模式和源碼分析的博客。今天的話就先來講
前段時間公司一些同事在討論單例模式(我是最渣的一個,都插不上嘴 T__T ),這個模式使用的頻率很高,也可能是很多人最熟悉的設計模式,當然單例模式也算是最簡單的設計模式之
AlertDialog生成的對話框可分為4個區域:圖標區,標題區,內容區,按鈕區結構如圖:AlertDialog對話框的使用:1,創建AlertDialog.Builde
《Struck:Structured Output Tracking with Kernels》是Sam Hare, Amir Saffari, Philip H. S.