国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中AlarmManager基本用法分析

2019-12-12 05:40:26
字體:
供稿:網(wǎng)友

本文實例講述了Android中AlarmManager基本用法。分享給大家供大家參考,具體如下:

AlarmManager的作用文檔中的解釋是:在特定的時刻為我們廣播一個指定的Intent。簡單的說就是我們設(shè)定一個時間,然后在該時間到來時,AlarmManager為我們廣播一個我們設(shè)定的Intent。

對應(yīng)AlarmManager更深層的了解可以參考:

//m.survivalescaperooms.com/article/90491.htm

android提供了四種類型的鬧鐘:

① ELAPSED_REALTIME

在指定的延時過后,發(fā)送廣播,但不喚醒設(shè)備。

② ELAPSED_REALTIME_WAKEUP

在指定的演示后,發(fā)送廣播,并喚醒設(shè)備
延時是要把系統(tǒng)啟動的時間SystemClock.elapsedRealtime()算進去的,具體用法看代碼。

③ RTC

在指定的時刻,發(fā)送廣播,但不喚醒設(shè)備

④ RTC_WAKEUP

在指定的時刻,發(fā)送廣播,并喚醒設(shè)備

AlarmManager提供的方法:

1. void set(int type, long triggerAtTime, PendingIntent operation)
設(shè)置一個鬧鐘

2. void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
設(shè)置一個會重復(fù)的鬧鐘

3. void setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
設(shè)置一個重復(fù)鬧鐘的不精確版本,它相對而言更節(jié)能(power-efficient)一些,因為系統(tǒng)可能會將幾個差不多的鬧鐘合并為一個來執(zhí)行,減少設(shè)備的喚醒次數(shù)。

內(nèi)置的幾個interval為:

INTERVAL_FIFTEEN_MINUTES
INTERVAL_HALF_HOUR
INTERVAL_HOUR
INTERVAL_HALF_DAY
INTERVAL_DAY

如果你將其設(shè)為DAY,那么可能這一天中的所有鬧鐘都會被合并掉。

void cancel(PendingIntent operation)

取消一個設(shè)置的鬧鐘

void setTimeZone(String timeZone)

設(shè)置系統(tǒng)的默認(rèn)時區(qū)。需要android.permission.SET_TIME_ZONE權(quán)限

// 首先創(chuàng)建Receiverpublic class AlarmReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {    Toast.makeText(context, "alarm", Toast.LENGTH_SHORT).show();  }}
// manifest中申明,并不需要intent-filter,我們是明確指定發(fā)到哪個receiver的<receiver android:name="yuan.receivers.AlarmReceiver" />

PendingIntent:簡單的說就是在Intent上在加個指定的動作。Intent的話,我們還需要在執(zhí)行startActivity、startService或sendBroadcast才能使Intent有用。而PendingIntent的話就是將這個動作包含在內(nèi)了,如PendingIntent.getBroadcast就包含了sendBroadcast的動作。

5s后發(fā)送指定廣播

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);int requestCode = 0;PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),    requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 5秒后發(fā)送廣播,只發(fā)送一次int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;alarmMgr.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, pendIntent);

5s后發(fā)送指定廣播,然后每個10秒重復(fù)發(fā)送廣播

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);int requestCode = 0;PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),    requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 5秒后發(fā)送廣播,然后每個10秒重復(fù)發(fā)廣播。廣播都是直接發(fā)到AlarmReceiver的int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;int interval = 10 * 1000;alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, interval, pendIntent);

取消一個鬧鐘

AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),    0, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 與上面的intent匹配(filterEquals(intent))的鬧鐘會被取消alarmMgr.cancel(pendIntent);

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 故城县| 商水县| 长寿区| 建水县| 阜新市| 准格尔旗| 庄浪县| 成安县| 昭觉县| 龙胜| 仁怀市| 博罗县| 尤溪县| 二连浩特市| 揭西县| 寻乌县| 深水埗区| 收藏| 宜都市| 溆浦县| 康马县| 新丰县| 邓州市| 吉安县| 普陀区| 高唐县| 兴安县| 兴化市| 桐梓县| 沭阳县| 宁波市| 邹平县| 安吉县| 方正县| 临潭县| 潮州市| 凌源市| 格尔木市| 河南省| 西峡县| 通辽市|