android 实现每天7点到21点定时提示的功能
来源:互联网 发布:算法与数据结构 书籍 编辑:程序博客网 时间:2024/05/17 02:43
功能:实现每天7点到21点定时提示的功能
实现思路:通过AlarmManage设定时间,然后在该时间到来时,AlarmManager发送广播,在自定义的广播接收器中进行提示
碰到的问题 ①:后面的定时器会将前面的定时器"覆盖"掉,只会启动最后一个定时器
②:如果设置一个过去的时间,闹钟立即被触发
问题①解决方法:
PendingIntent.getBroadcast(Context context, int requestCode, Intent intent, int flags);
第二个参数requestCode一定要是唯一的,比如不同的ID之类的(如果系统需要多个定时器的话),而刚开始自己代码 PendingIntent.getBroadcast(MainActivity.this, 0, intent,PendingIntent.FLAG_CANCEL_CURRENT) requestCode设置成0了,导致只会启动最后一个定时器
问题②解决方法:
增加判断:
if(当前时间>你想设置的时间)
{
把当前日期加1天.
}
<span style="color:#333333;">AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);for (int i = 7; i <= 21; i++) {Intent intent = new Intent(MainActivity.this,AlarmReceiver.class);intent.setAction("action");PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, </span><span style="color:#ff0000;">i</span><span style="color:#333333;">, intent,PendingIntent.FLAG_CANCEL_CURRENT);Calendar calendar = Calendar.getInstance();long currentTime = calendar.getTimeInMillis();// 获取当前时间calendar.set(calendar.HOUR_OF_DAY, i);calendar.set(calendar.MINUTE, 0);calendar.set(calendar.SECOND, 0);/** * 当前时间大于设置的时间,将设置的时间增加一天 */</span><span style="color:#ff0000;">if (currentTime > calendar.getTimeInMillis()) {calendar.add(Calendar.DATE, 1);}</span><span style="color:#333333;">alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), 1000 * 60 * 60 * 24,pendingIntent);}</span>
项目完整代码:点击打开链接
0 0
- android 实现每天7点到21点定时提示的功能
- android实现多层红点提示的功能
- android 每天定时提醒功能实现
- android 每天定时提醒功能实现
- oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
- oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
- 点赞功能的实现
- golang设置每天12点定时任务
- Android实现Actionbar红点数字提示
- Android中Listview实现点赞功能
- Android功能点
- 一个“点赞”功能的实现代码
- Android每天定时提醒功能、定时功能、闹钟
- 记录android开发用到的功能点
- 点到直线的距离opencv实现
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨23点执行任务
- 关于条件变量
- Android学习路线权威指南
- Aop详解2
- Ext.encode与Ext.decode的JSON转换
- 集成支付宝SDK时错误 之 openssl/asn1.h file not found
- android 实现每天7点到21点定时提示的功能
- 第七周 数据结构实践项目——队列 【项目4 - 队列数组】
- 第8周SHH数据结构-【项目4-字符串加密 】
- Swift中的问号?和感叹号!
- mysql中count(*),distinct的使用方法和效率研究
- C++基础——有关FILE的那些函数
- 崩溃的自定义View
- 使用session pool来优化mongodb的性能
- Android Studio 利用Gradle来混淆代码