网站大量收购闲置独家精品文档,联系QQ:2885784924

6.设定PendingIntent服务.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.设定PendingIntent服务

手機即時訊息顯示程式製作說明書 校訂歷史(Revision History) 日期 版本 說明 作者 10/28 2013 1.0 初版 張家榮 Table of Contents 1. 何謂警報(Alarm)和通知(Notification) 4 2. AlarmManager 的使用 4 3. 接收警報 6 4. NotificationManager 的使用 7 5. 通知內容 8 6. 成品範例 9 7. 成品Demo 15 8. 完整程式碼 16 何謂警報(Alarm)通知(Notification) Alarm原意有警告、警鈴之意思,在此系統裡Alarm具有提醒的功效。Alarm能在指定的時間點或是設定好的時間間隔下產生動作以提醒使用者。這些動作就算在App為關閉的狀態下,依然允許啟動。Alarm就像鬧鐘一般,可以自由設定時間點來做提醒。就以手機鬧鐘來說,鬧鈴並不會因為使用者沒開啟鬧鐘程式而停止觸發動作,即便是手機螢幕並未開啟,鬧鐘也依然執行動作。 Notification則是提醒的方式,簡單來說就像發出震動、鈴聲、閃爍等等來達到通知使用者的效果。 Alarm並不會包含在應用程式裡而是存在於外界的程式,而Notification 通常會被用在 Broadcast Receiver 或 Service 等不可見的應用程式中 AlarmManager 的使用 AlarmManager應該要有一段對應 Android 設備重開機後, 宣告AlarmManager private AlarmManager alarm; 設定AlarmManager服務 alarm = (AlarmManager) getSystemService(ALARM_SERVICE); 宣告PendingIntent private PendingIntent pending; 設定Intent服務 Intent intent = new Intent(); intent.setAction(com.example.raito.MY_ACTION); 設定 PendingIntent服務將Intent服務加入其中 pending = PendingIntent.getBroadcast (getApplicationContext(), 0, intent, 0); PendingIntent的類型如下: 0是不做類型設定 1、PendingIntent.FLAG_UPDATE_CURRENT 如果該PendingIntent已經存在,則用新傳入的Intent的Extra更新當前的數據。 2、PendingIntent.FLAG_ONE_SHOT send()只能被執行一次,即是說,假如該通知點擊後不消失,那麼再次點擊不會發生任何事。 3、PendingIntent.FLAG_NO_CREATE 如果該PendingIntent不存在,直接返回null而不是創建一個PendingIntent. 4、PendingIntent.FLAG_CANCEL_CURRENT 如果該PendingIntent已經存在,則在生成新的之前取消當前的。 將PendingIntent加入AlarmManager服務中 alarm.setRepeating (AlarmManager.RTC_WAKEUP, time, 8000,pending); Time為開始時間 8000為8秒後重複執行 Pending為要執行的服務 設定類型有兩種: 單次: 要設定一個警報只要使用 set 方法,同時指定一個警報類型、觸發時間及一個待處理意圖。如果這個觸發時間是在過去,那這個警報會被立即觸發。 多次: 重複性警報就像鬧鐘設定多次提醒一樣。要設定重覆性警報有 2 種方法,setRepeating() 或 setInexactRepeating() ,兩者的差別在於 setRepeating() 可以以精確到毫秒的時間間隔來執行,當然就會比較耗電,使用 setInexactRepeating() 則可以避免耗電。 setInexactRepeating() 可以使用較不精確的時間間隔來設定,而這些在 AlarmManager 類別中已有內定的常數可使用,如下: INTERVAL_FIFTEEN_MINUTES(每隔 15 分鐘) INTERVAL_HALF_HOUR(每隔半小時) INTERVAL_HOUR(每隔 1 小時) INTERVAL_HALF_DAY(每隔12小時) INTERVAL_DAY(每隔 24小時) 使用範例如下: -精確 alarm.setRepeatin

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档