Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android開發之AlarmManager的使用方法

android開發之AlarmManager的使用方法

編輯:關於Android編程

android開發之AlarmManager的使用方法


在android開發過程中。經常會用到AlarmManager來定時發送一個廣播,或者啟動一個Service,又或者啟動一個Activity。本文我們會分別介紹,在開發過程中AlarmManager的三種用法。


1、使用alarm來發送一個廣播

首先,我們需要創建一個Intent的實例。用來發送廣播。代碼如下:

需要發送的action可以自己隨便定義,以下代碼實現每五秒就發送一個CLOCK廣播

需要在Manifest中定義一個receiver 來接收CLOCK廣播


Intent intent = new Intent(); intent.setAction("CLOCK");
intent.putExtra("msg", "alarm start");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Log.i(TAG, "Alarm"); am.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), 5*1000, pendingIntent);



2、使用alarm來啟動一個Activity,代碼如下:

Intent intent = new Intent();
intent.setClass(MainActivity.this, AlarmActivity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,intent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5*1000, pendingIntent);


3、使用alarm來啟動一個Service,代碼如下:

Service需要在Manifest中聲明下。


Intent intent = new Intent();
intent.setClass(MainActivity.this, AlarmService.class);


PendingIntent pendingIntent = PendingIntent.getService(this, 0,intent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Log.i(TAG, "Alarm");
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5*1000, pendingIntent);



取消定時器的方法如下:

Intent i = new Intent();
i.setAction("CLOCK");
i.putExtra("msg", "alarm start");

//參數2為id。取消id為0的Alarm
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
i, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

am.cancel(pendingIntent);



am.setRepeating() //表示周期性的啟動

am.set() //表示只啟動一次



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved