当前位置:操作系统 > 安卓/Android >>

Android ApiDemos示例解析(20):App->Alarm->Alarm Service

Alarm Service和Alarm Controller 例子非常类似,只是Alarm Service是用来Schedule一个Service,而前面的例子是来Schedule一个Broadcast。

前面说过PendingIntent ,可以来描述一个Activity ,Broadcast,或是一个Service。本例是Schedule一个Alarm事件来启动一个Service。这通常用于来执行一个较费时的任务。

关于如果编写一个Service将在后面的有专门的例子来说明,只里不详述。只要知道AlarmService_Service是一个Service就行了。

下面的代码用来Schedule一个多次Alarm事件来启动AlarmService_Service

[java] 
private PendingIntent mAlarmSender; 
 ... 
// Create an IntentSender that will launch our service, to be scheduled  
 // with the alarm manager.  
mAlarmSender = PendingIntent.getService(AlarmService.this, 
 0, new Intent(AlarmService.this, AlarmService_Service.class), 0); 
... 
// We want the alarm to go off 30 seconds from now.  
long firstTime = SystemClock.elapsedRealtime(); 
  
// Schedule the alarm!  
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
 firstTime, 30*1000, mAlarmSender); 
private PendingIntent mAlarmSender;
 ...
// Create an IntentSender that will launch our service, to be scheduled
 // with the alarm manager.
mAlarmSender = PendingIntent.getService(AlarmService.this,
 0, new Intent(AlarmService.this, AlarmService_Service.class), 0);
...
// We want the alarm to go off 30 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
 
// Schedule the alarm!
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
 firstTime, 30*1000, mAlarmSender);

取消这个Alarm事件:

 

[java] 
// And cancel the alarm.  
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.cancel(mAlarmSender); 
// And cancel the alarm.
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(mAlarmSender);


 

\
作者:mapdigit
 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,