菜鸟入坑记——第一篇
关键字:AlarmManager
一、AlarmManager简介:
了解android低电耗模式:https://developer.android.google.cn/training/monitoring-device-state/doze-standby.html
AlarmManager的作用:在特定的时刻为我们广播一个指定的Intent。
即:自己设定一个时间,当系统时间到达此时间时,AlarmManager自动广播一个我们设定好的Intent,指向某个Activity或Service。
注意:① AlarmManager主要用来在某个时刻运行你的代码,即使你的APP在那个特定的时间并没有运行。
二、获得AlarmManager实例对象:
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
三、方法:
setExact(int type, long startTime, PendingIntent pi); 一次性闹钟,执行时间精确,为精确闹钟
四、程序设计:
(1)类型type
此处选用闹钟类型为AlarmManager.RTC:闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间(当前系统时间),状态值为1。
(2)开始时间startTime
由于通过SP获得的时间为String类型,需先转换为long类型,且时间单位为ms
1 /**
2 * String类型转换成date类型3 * strTime: 要转换的string类型的时间,4 * formatType: 要转换的格式yyyy-MM-dd HH:mm:ss5 * //yyyy年MM月dd日 HH时mm分ss秒,6 * strTime的时间格式必须要与formatType的时间格式相同7 */
8 public staticDate stringToDate(String strTime, String formatType){9 KLog.d("进入stringToDate");10 try{11 SimpleDateFormat formatter = newSimpleDateFormat(formatType);12 Date date = null;13 date =formatter.parse(strTime);14 returndate;15 }catch(Exception e){16 return null;17 }18 }19 /**
20 * String类型转换为long类型21 * .............................22 * strTime为要转换的String类型时间23 * formatType时间格式24 * formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒25 * strTime的时间格式和formatType的时间格式必须相同26 */
27 public static longstringToLong (String strTime,String formatType