Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 手動設置時間 過期鬧鐘被觸發

android 手動設置時間 過期鬧鐘被觸發

編輯:關於Android編程

最近在做鬧鐘的一個小程序,發現了一個問題。這個問題在網上都沒有找到合適的答案,最後還是在鬧鐘的源碼裡面找到答案的。

相信很多人都和我一樣,都遇到了這樣的問題。

當你設置好鬧鐘以後,鬧鐘會准時觸發,然後會在標題欄頂部,彈出提示框,以表示鬧鐘被觸發了。

可是當我們手動設置手機系統的時間,把時間往後面調,會發現過期的鬧鐘也被觸發了。這個卻不是我們想要的。我 以前的想法是監聽鬧鐘的TIME_SET時間,搶在系統觸發鬧鐘之前把我們設置的鬧鐘給取消掉,這樣就不會有過期的鬧鐘被觸發了。可惜,這樣是不行的。系統的鬧鐘還是被觸發了。頭痛不已。

後來,看了android自帶的源碼之後,才煥然大悟阿,原來這麼簡單的問題被我搞的這麼的復雜。


主要的解決辦法就是:

手動設置時間以後,系統會觸發我們設置的鬧鐘,一般我們都是用receiver用作pendingintent的,我們只要在receiver裡面判斷一下當前時間和我們設置的這個鬧鐘的時間之間差值就可以解決這個問題了。如果差值過大,我們就不給出鬧鐘提示就可以了。


老覺得是系統錯了,其實和系統就沒有什麼關系。他要觸發你的鬧鐘就讓它觸發好了,只要你判斷一下當前時間,是不是你的鬧鐘被觸發的時間就可以了啊。如果是,那就給出鬧鐘提示,如果不是,當前時間和鬧鐘時間差很遠,那就不要給出鬧鐘提示就可以啊,就這麼簡單。真的和系統沒有什麼關系。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved