歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

觀摩Android系統源碼 +鬧鐘-1

我們在使用Android操作系統的時候,作為一個非常實用的應用程序當數Android自帶的鬧鐘程序了。

在此讓我們來一起研究這個Android自帶的鬧鐘程序是怎麼一個實現過程吧!

首先讓我們來看看整個鬧鐘的設置和運行過程,這有助於我們找到研究的出發點。


   1.鬧鐘列表

   


 2.鬧鐘設置

  

  

     好的,我們可以看出這個鬧鐘程序主要是由這兩個Activity組成(當然還包含響玲彈出框),它們分別對應鬧鐘項目源碼中的AlarmClock.java和SettingsActivity.java 


     AlarmClock.java定義如下(部分代碼):

      @Override

 
  1. protected void onCreate(Bundle icicle) {  
  2.     super.onCreate(icicle);  
  3.   
  4.     String[] ampm = new DateFormatSymbols().getAmPmStrings();  
  5.     mAm = ampm[0];  
  6.     mPm = ampm[1];  
  7.   
  8.     mFactory = LayoutInflater.from(this);  
  9.     mPrefs = getSharedPreferences(PREFERENCES, 0);  
  10.     mCursor = Alarms.getAlarmsCursor(getContentResolver());  
  11.   
  12.     updateLayout();  
  13.     setClockVisibility(mPrefs.getBoolean(PREF_SHOW_CLOCK, true));  
  14. }     

     在onCreate()函數中主要看

mCursor = Alarms.getAlarmsCursor(getContentResolver());

從這句我們就可以看出啟動後所看到的鬧鐘列表是有ContentProvider中遍歷所有鬧鐘而形成,後面自然有形成這個列表的方法。

其中這裡用的了Alarms這個類。下面列出了這個類中定義的所有方法(粗體為重要方法):

addAlarm 添加鬧鐘方法

deleteAlarm 刪除鬧鐘方法

getAlarmsCursor 獲取ContentProvider中的所有鬧鐘對象,返回相應的游標句柄

getFilteredAlarmsCursor 獲取ContentProvider中所有開啟的鬧鐘對象

getAlarm 根據某一鬧鐘ID獲取相應的鬧鐘對象

setAlarm 設置鬧鐘方法

enableAlarm 對鬧鐘的使能操作

calculateNextAlert 計算下一個鬧鐘響起的時間

disableExpiredAlarms 關閉所有過時鬧鐘

setNextAlert 設置下一鬧鐘響起時間

enableAlert 系統定時提醒操作

disableAlert撤銷定時鬧鐘操作

calculateAlarm 根據時分計算鬧鐘響起時間


可以看出Alarms類主要封裝了對鬧鐘對象的所有操作,是整個鬧鐘程序的控制邏輯。

Copyright © Linux教程網 All Rights Reserved