WEB开发网
开发学院手机开发Android 开发 Android AlarmManager简单例子 阅读

Android AlarmManager简单例子

 2012-07-05 13:43:43 来源:WEB开发网   
核心提示: AlarmManager 包含的主要方法:// 取消已经注册的与参数匹配的定时器 void cancel(PendingIntent operation) //注册一个新的延迟定时器 void set(int type, long triggerAtTime, PendingIntent op

 AlarmManager 包含的主要方法:

// 取消已经注册的与参数匹配的定时器     
void   cancel(PendingIntent operation)    
//注册一个新的延迟定时器  
void   set(int type, long triggerAtTime, PendingIntent operation)    
//注册一个重复类型的定时器  
void   setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)    
//注册一个非精密的重复类型定时器  
void setInexactRepeating (int type, long triggerAtTime, long interval, PendingIntent operation)  
//设置时区    
void   setTimeZone(String timeZone)   

定时器主要类型:

public   static   final   int  ELAPSED_REALTIME    
// 当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3    (0x00000003)。     
    
public   static   final   int  ELAPSED_REALTIME_WAKEUP    
//能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x00000002) 。     
    
public   static   final   int  RTC    
//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用 System.currentTimeMillis()获得。系统值是1 (0x00000001) 。     
    
public   static   final   int  RTC_WAKEUP    
//能唤醒系统,用法同RTC类型,系统值为 0 (0x00000000) 。     
    
Public static   final   int  POWER_OFF_WAKEUP    
//能唤醒系统,它是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,所以我们把它称之为关机闹铃。使用方法同RTC类型,系统值为4(0x00000004)。     

下面我们创建一个最简单的alarm程序。 开机启动一个broadcast,然后驱动一个alarm让它每隔1秒钟启动一次。
public class test_chargeReceive extends BroadcastReceiver {
private static AlarmManager mAlarmManager=null;
private static PendingIntent mIdleIntent;
private static final int IDLE_REQUEST = 0;
static long now=0;
static AlertDialog dialog=null ;
@Override
public void onReceive(Context context, Intent intent) {
if(mAlarmManager==null){
mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent idleIntent = new Intent("com.keenhi.charge", null);
mIdleIntent = PendingIntent.getBroadcast(context, IDLE_REQUEST, idleIntent, 0);
// mAlarmManager.cancel(mIdleIntent);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, mIdleIntent);
}
String action = intent.getAction();
if (action.equals("com.keenhi.charge")){
mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, mIdleIntent);
now= System.currentTimeMillis();
Log.i("alrm timer now="+now);
}
}
manifest.xml的重要代码:
<receiver android:name="test_chargeReceive">
<intent-filter>

1 2  下一页

Tags:Android AlarmManager 简单

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接