Android ApiDemo分析(六)

来源:互联网 发布:*在c语言中是什么意思 编辑:程序博客网 时间:2024/06/08 07:43
app/Alarm/Alarm Controller

这个Demo主要演示了如何用AlarmManager控制定时以实现定时提醒的功能(也就是闹钟)。

功能描述:通过3个按钮为AlarmManager设置不同的定时方式,One Shot Alarm按钮会每隔30秒发送一次广播;Start Repeating Alarm按钮会每隔15秒发送一次广播;Stop Repeating Alarm按钮停止计时。

相关内容:
1、AlarmManager
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)  
其中的type指定不同类型的定时服务
 1)ELAPSED_REALTIME    // 当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得;       
2)ELAPSED_REALTIME_WAKEUP    //能唤醒系统,用法同ELAPSED_REALTIME;    
3)RTC    //当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用 System.currentTimeMillis()获得;        
4)RTC_WAKEUP    //能唤醒系统,用法同RTC类型;     
5)POWER_OFF_WAKEUP    //能唤醒系统,它是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,使用方法同RTC类型。
2、PendingIntent
PendingIntent是另一种类型的意图,它包含真正的Intent,可以用于不同进程之间的数据传送,不会立即执行,需要外部事件触发。主要有三种方法来获取不同类型的实例:
1)PendingIntent.getActivity(Context, int, Intent, int);
2)PendingIntent.getBroadcast(Context, int, Intent, int);
3)PendingIntent.getService(Context, int, Intent, int);


app/Alarm/Alarm Service

这个Demo演示了用AlarmManager定时启动服务,再由服务产生延时的功能;
功能描述:Start Alarm Service按钮设置30秒定时启动服务,启动的服务首先在标题栏显示通知,然后等待15秒后关闭服务;Stop Alarm Service按钮取消定时器功能,服务也将不再启动。

相关内容:
Notification通知
设置方法:
1、Notification notification = new Notification (int icon, CharSequence tickerText, long when) ;
2、notification.setLatestEventInfo (Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent);
3、nNM.notify(int id, Notification notification);//nNM为NotificationManager对象
原创粉丝点击