@DefinedOne
2015-07-10T01:36:55.000000Z
字数 1794
阅读 916
android
alarm
clock
类型 | 名称 | 说明 |
---|---|---|
String | alarmName | 闹钟名 |
int | id | |
Calendar | alarmTime | 响铃时间, |
Day[] | days | 每周有哪几天响铃(周日、周一…周六) |
String | alarmTonePath | 铃声文件路径 |
Boolean | vibrate | 是否震动 |
Difficulty | difficulty | 难度等级 |
Boolean | alarmActive | 是否已被激活 |
其中Day和Difficulty是枚举类。
Day有其个取值,Difficulty有三个取值。
对上述的数据都有基本的set()、get()方法。
以下方法的属性:public。
方法 | 说明 |
---|---|
void schedule(Context context) | 启动这个Alarm |
String getRepeatDaysString() | 取得‘闹钟在每周的周几重复’的字符串表达 |
String getTimeUntilNextAlarmMessage() | 取得闹钟下一次响铃时间的字符串表达 |
public void schedule(Context context) {
setAlarmActive(true);
Intent myIntent = new Intent(context, AlarmAlertBroadcastReciever.class);
myIntent.putExtra("alarm", this);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(
Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, getAlarmTime().getTimeInMillis(),
pendingIntent);
}
public String getRepeatDaysString() {
StringBuilder daysStringBuilder = new StringBuilder();
if(getDays().length == Day.values().length){
daysStringBuilder.append("Every Day");
}else{
Arrays.sort(getDays(), new Comparator<Day>() {
@Override
public int compare(Day lhs, Day rhs) {
return lhs.ordinal() - rhs.ordinal();
}
});
for(Day d : getDays()){
switch(d){
case TUESDAY:
case THURSDAY:
// daysStringBuilder.append(d.toString().substring(0, 4));
// break;
default:
daysStringBuilder.append(d.toString().substring(0, 3));
break;
}
daysStringBuilder.append(',');
}
daysStringBuilder.setLength(daysStringBuilder.length()-1);
}
return daysStringBuilder.toString();
}
感谢您花费时间阅读这篇文章,当然我更希望您有所收获!分享愉快!
作者 @DefinedOne
2015 年 03月 31日