- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 水利工程环境影响分析与控制【毕业作品】.doc
- 2019 水电工程场内交通道路设计规范.docx
- 读后续写专项突破+课件-2025届高三英语上学期一轮复习专项.pptx VIP
- 水利工程施工技术骨料开采量的确定63骨料开采量的确定.pptx
- 航空机械零部件制造公司绩效管理方案.docx VIP
- “舌尖上的年味”春节全国各地美食习俗PPT模板工作总结汇报.pptx VIP
- 新版建设工程工程量清单计价标准解读.pptx VIP
- 读后续写Continuation+writing+课件-2025届高三英语上学期一轮复习专项.pptx VIP
- 辅警基础知识培训课件.pptx
- 高考英语词汇3500汉译英默写版.pdf VIP
文档评论(0)