編輯:Android編程入門
AlarmManager這個類提供對系統鬧鐘服務的訪問接口。
你可以為你的應用設定一個在未來某個時間喚醒的功能。
當鬧鐘響起,實際上是系統發出了為這個鬧鐘注冊的廣播,會自動開啟目標應用。
注冊的鬧鐘在設備睡眠的時候仍然會保留,可以選擇性地設置是否喚醒設備,但是當設備關機和重啟後,鬧鐘將會被清除。
在alarm的receiver的onReceive()方法被執行的時候,Alarm Manager持有一個CPU喚醒鎖,這樣就保證了設備在處理完廣播之前不會sleep。
一旦onReceive()方法返回,Alarm Manager就會釋放這個鎖,表明一些情況下可能onReceive()方法一執行完設備就會sleep。
如果你的alarm receiver中調用了Context.startService(),那麼很可能service還沒起來設備就sleep了。
為了阻止這種情況,你的BroadcastReceiver和Service需要實現不同的喚醒鎖機制,來確保設備持續運行到service可用為止。
注意:Alarm Manager主要是用來在特定時刻運行你的代碼,即便是你的應用在那個特定時刻沒有跑的情況。
對於常規的計時操作(ticks, timeouts, etc),使用Handler處理更加方便和有效率。
另:從API 19開始,alarm的機制都是非准確傳遞,操作系統將會轉換鬧鐘,來最小化喚醒和電池使用。
有一些新的API會支持嚴格准確的傳遞,見 Context.getSystemService(Context.ALARM_SERVICE)。
相關方法說明:
cancel(PendingIntent operation)方法將會取消Intent匹配的任何鬧鐘。
關於Intent的匹配,查看filterEquals(Intent other)方法的說明可知,兩個Intent從intent resolution(filtering)(Intent決議或過濾)的角度來看是一致的,即認為兩個Intent相等。即是說,Intent的action,data,type,class,categories是相同的,其他的數據都不在比較范圍之內。
PendingIntent operation)方法將會設置一個鬧鐘。
注意:對於計時操作,可能使用Handler更加有效率和簡單。
設置鬧鐘的時候注意:
1.如果聲明的triggerAtMillis是一個過去的時間,鬧鐘將會立即被觸發。
2.如果已經有一個相同intent的鬧鐘被設置過了,那麼前一個鬧鐘將會取消,被新設置的鬧鐘所代替。
注意這裡說的intent相同指的都是Intent在 filterEquals(Intent)的定義下匹配。
鬧鐘是一個廣播,接收器需要自己定義和注冊,注冊使用動態注冊( PendingIntent operation)方法將會設置一個重復性的鬧鐘。
比set方法多了一個間隔參數。
type的類型是四種:
ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC, RTC_WAKEUP.
區分的是時間標准和是否在睡眠狀態下喚醒設備。
具體查看官方文檔吧不再詳細解釋啦。
實例
比如要設置一個每晚21:30喚醒的重復鬧鐘:
private static final int INTERVAL = 1000 * 60 * 60 * 24;// 24h //... Intent intent = new Intent(context, RequestAlarmReceiver.class); PendingIntent sender = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_CANCEL_CURRENT); // Schedule the alarm! AlarmManager am = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 21); calendar.set(Calendar.MINUTE, 30); calendar.set(Calendar.SECOND, 10); calendar.set(Calendar.MILLISECOND, 0); am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), INTERVAL, sender);
1.什麼是ToggleButtonToggleButton有兩種狀態:選中和未選中狀態並且需要為不同的狀態設置不同的顯示文本2.ToggleButton屬性android
Android Wear是連接安卓手機和可穿戴產品的一個平台。自從今年上半年發布以來,Android Wear獲得了大量關注,既有來自消費者的關注,也有來自開發商的關注,
一、基本概念最權威和官方的介紹請看google的api文檔http://developer.android.com/training/basics/actionbar/s
有圖又真相,先上圖再說。點擊效果: 設置虛線: [html] view plain copy &