Android AlarmManager使用

AlarmManager:在特定時刻為我們廣播發(fā)送一個指定intent墓怀。

如何使用:
<pre><code>


public class AlarmActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.alarm_act);

        initAlarm();
    }

    private void initAlarm() {
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
        int requestCode = 0;

        /**
         * 綁定了鬧鐘的執(zhí)行動作,比如發(fā)送廣播、給出提示等凫岖;
         *      PendingIntent.getService(Context c, int i, Intent intentm int j) 通過啟動服務(wù)來實現(xiàn)鬧鐘提示
         *      PendingIntent.getBroadcase(...) 通過啟動廣播來實現(xiàn)
         *      PendingIntent.getActivity(...) 通過啟動Activity來實現(xiàn)
         */
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
                requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

//        PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(),
//                requestCode, new Intent(this, ViewAnimationActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);

        // 5秒后發(fā)送廣播
        long triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;

        /**
         * set(int type,long startTime晒哄,PendingIntent pi)购啄;
         * 設(shè)置一次性鬧鐘
         *      第一個參數(shù):鬧鐘類型
         *      第二個參數(shù):鬧鐘執(zhí)行的時間
         *      第三個參數(shù):鬧鐘響應(yīng)動作
         *
         *    5秒后發(fā)送廣播
         */
        alarmManager.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, pendingIntent);


        /**
         * setRepeating(int type襟企,long startTime,long intervalTime狮含,PendingIntent pi)顽悼;
         * 設(shè)置重復(fù)鬧鐘
         *      參數(shù)1:鬧鐘類型
         *      參數(shù)2:鬧鐘首次執(zhí)行時間
         *      參數(shù)3:鬧鐘兩次執(zhí)行的時間間隔
         *      參數(shù)4:鬧鐘響應(yīng)動作
         *
         *    5秒后發(fā)送廣播,然后每隔10秒重復(fù)發(fā)送
         */
        //alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                //triggerAtTime, 10 * 1000, pendingIntent);


        /**
         * setInexactRepeating(int type几迄,long startTime蔚龙,long intervalTime,PendingIntent pi)映胁;
         * 同上:設(shè)置重復(fù)鬧鐘  間隔時間不固定木羹,更節(jié)能,系統(tǒng)可能將幾個差不多的鬧鐘合并為一個執(zhí)行,減少喚醒次數(shù)
         *      參數(shù)3:intervalTime
         *          INTERVAL_FIFTEEN_MINUTES
         *          INTERVAL_HALF_HOUR
         *          INTERVAL_HOUR
         *          INTERVAL_HALF_DAY
         *          INTERVAL_DAY
         */
        //alarmManager.setInexactRepeating();

        /**
         * 鬧鐘取消
         */
        //alarmManager.cancel(pendingIntent);


        /**
         * 鬧鐘類型:
         *      AlarmManager.ELAPSED_REALTIME:        鬧鐘在手機睡眠狀態(tài)下不可用屿愚,該狀態(tài)下鬧鐘使用相對時間(相對于系統(tǒng)啟動開始, SystemClock.elapsedRealtime())汇跨,狀態(tài)值為3务荆;
         *      AlarmManager.ELAPSED_REALTIME_WAKEUP: 鬧鐘在手機睡眠狀態(tài)下回喚醒系統(tǒng)并執(zhí)行提示功能妆距,該狀態(tài)下鬧鐘也使用相對時間穷遂,狀態(tài)值為2;
         *      AlarmManager.RTC:                     鬧鐘在睡眠狀態(tài)下不可用娱据,改狀態(tài)下鬧鐘使用絕對時間蚪黑,即當前系統(tǒng)時間,狀態(tài)值為1中剩;
         *      AlarmManager.RTC_WAKEUP:              鬧鐘在睡眠狀態(tài)下回喚醒系統(tǒng)并執(zhí)行提示功能忌穿,使用絕對時間,狀態(tài)值為0结啼;
         *      AlarmManager.POWER_OFF_WAKEUP:        鬧鐘在手機關(guān)機狀態(tài)下也能正常進行提示功能掠剑,使用最多,使用絕對時間(System.currentTimeMillis())郊愧,狀態(tài)值為4朴译,受SDK版本影響。
         */

    }

    public static void actionStart(Context context) {
        Intent intent = new Intent(context, AlarmActivity.class);
        context.startActivity(intent);
    }

}

</code></pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末属铁,一起剝皮案震驚了整個濱河市眠寿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焦蘑,老刑警劉巖盯拱,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異例嘱,居然都是意外死亡狡逢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門拼卵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甚侣,“玉大人,你說我怎么就攤上這事间学∫蠓眩” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵低葫,是天一觀的道長详羡。 經(jīng)常有香客問我,道長嘿悬,這世上最難降的妖魔是什么实柠? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮善涨,結(jié)果婚禮上窒盐,老公的妹妹穿的比我還像新娘草则。我一直安慰自己,他們只是感情好蟹漓,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布炕横。 她就那樣靜靜地躺著,像睡著了一般葡粒。 火紅的嫁衣襯著肌膚如雪份殿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天嗽交,我揣著相機與錄音卿嘲,去河邊找鬼。 笑死夫壁,一個胖子當著我的面吹牛拾枣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盒让,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼梅肤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了糯彬?” 一聲冷哼從身側(cè)響起凭语,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撩扒,沒想到半個月后似扔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡搓谆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年炒辉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泉手。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡黔寇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斩萌,到底是詐尸還是另有隱情缝裤,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布颊郎,位于F島的核電站憋飞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏姆吭。R本人自食惡果不足惜榛做,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧检眯,春花似錦厘擂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至获茬,卻和暖如春港庄,著一層夾襖步出監(jiān)牢的瞬間倔既,已是汗流浹背恕曲。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留渤涌,地道東北人佩谣。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像实蓬,于是被迫代替她去往敵國和親茸俭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評論 25 707
  • 注:本文完全拷貝自https://developer.android.com/guide/components/i...
    RxCode閱讀 1,707評論 1 13
  • 1安皱、引言 真自由訓(xùn)練營的熱身作業(yè):使用PORT模型思考參加訓(xùn)練營的目的调鬓,并制定參加真自由訓(xùn)練營的標準。 看到這個時...
    山影_S閱讀 399評論 0 1
  • 天寒地凍 幾百只羊要翻越幾座大山 野狼在遠處 困難重重 牧人在烤火喝酒 創(chuàng)業(yè)比打工艱難百倍 既然不怕離職 又何懼工...
    871263354579閱讀 250評論 0 0
  • 盛神中有五氣酌伊,神為之長腾窝,心為之舍,德為之大居砖;養(yǎng)神之所虹脯,歸諸道。道者奏候,天地之始循集,一其紀也。物之所造蔗草,天之所生咒彤,包宏無...
    _裴泓博閱讀 773評論 0 2