我們在使用Android操作系統的時候,作為一個非常實用的應用程序當數Android自帶的鬧鐘程序了。
在此讓我們來一起研究這個Android自帶的鬧鐘程序是怎麼一個實現過程吧!
首先讓我們來看看整個鬧鐘的設置和運行過程,這有助於我們找到研究的出發點。
1.鬧鐘列表
2.鬧鐘設置
好的,我們可以看出這個鬧鐘程序主要是由這兩個Activity組成(當然還包含響玲彈出框),它們分別對應鬧鐘項目源碼中的AlarmClock.java和SettingsActivity.java
AlarmClock.java定義如下(部分代碼):
@Override
在onCreate()函數中主要看
mCursor = Alarms.getAlarmsCursor(getContentResolver());
從這句我們就可以看出啟動後所看到的鬧鐘列表是有ContentProvider中遍歷所有鬧鐘而形成,後面自然有形成這個列表的方法。
其中這裡用的了Alarms這個類。下面列出了這個類中定義的所有方法(粗體為重要方法):
addAlarm 添加鬧鐘方法
deleteAlarm 刪除鬧鐘方法
getAlarmsCursor 獲取ContentProvider中的所有鬧鐘對象,返回相應的游標句柄
getFilteredAlarmsCursor 獲取ContentProvider中所有開啟的鬧鐘對象
getAlarm 根據某一鬧鐘ID獲取相應的鬧鐘對象
setAlarm 設置鬧鐘方法
enableAlarm 對鬧鐘的使能操作
calculateNextAlert 計算下一個鬧鐘響起的時間
disableExpiredAlarms 關閉所有過時鬧鐘
setNextAlert 設置下一鬧鐘響起時間
enableAlert 系統定時提醒操作
disableAlert撤銷定時鬧鐘操作
calculateAlarm 根據時分計算鬧鐘響起時間
可以看出Alarms類主要封裝了對鬧鐘對象的所有操作,是整個鬧鐘程序的控制邏輯。