闹钟使用
闹钟分为4类
使用的时候,首先,获取闹钟的服务
private AlarmManager mAlarmManager;
mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
通过类似注册广播的action方式,添加闹钟
//添加一次性闹钟
public void addAlarmOnce(String action, int requestCode, long time, String param) {
Intent intent = new Intent(action);
Bundle mBundle = new Bundle();
mBundle.putString("ALARM_PARAM_1", param);
intent.putExtras(mBundle);
PendingIntent pi = PendingIntent.getBroadcast(mContext, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, pi);
}
//添加重复闹钟
public void addAlarmRepeat(String action, int requestCode, long time, String param) {
Intent intent = new Intent(action);
Bundle mBundle = new Bundle();
mBundle.putString("ALARM_PARAM_1", param);
intent.putExtras(mBundle);
PendingIntent pi = PendingIntent.getBroadcast(mContext, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, pi);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 5 * 1000, pi);
}
//取消闹钟
public void cancelAlarm(String action, int requestCode) {
Intent intent = new Intent(action);
PendingIntent sender = PendingIntent.getBroadcast(mContext, requestCode, intent, 0);
mAlarmManager.cancel(sender);
}
最后,编写闹钟接收,在闹钟时间到之后,执行响应操作
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String mAction = intent.getAction();
if (mAction.equals(Const.MY_ALARM_ONE_ACTION)) {
String passStr = intent.getExtras().getString("ALARM_PARAM_1");
// mUpdateUIListener.updateUI(passStr);
mTestUpdateUIListener.testUpdateUI(passStr);
}
}