android 实现每天7点到21点定时提示的功能
2015-11-02 17:12
651 查看
功能:实现每天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天.
}
项目完整代码:点击打开链接
实现思路:通过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>
项目完整代码:点击打开链接
相关文章推荐
- Android学习路线权威指南
- scrollTo(String text) and scrollToExact(String text) method of Android Driver not working
- 调试中手机抓包工具的使用
- 推荐4个Android引导页控件
- Android各个版本版本号对应关系表及悬浮框
- Android大图片裁剪终极解决方案 原理分析
- Android动画之属性动画
- 实现QQ登录第三方APP(Android)
- Android 关于轻量级存储PreferencesUtils
- Android事件总线纷发库EventBus的使用方法
- Android Studio进行单元测试
- Android 对Canvas的translate方法总结
- 定制Android系统开发之八——实现从JNI到Java的回调
- Android学习路线
- Android程序开发:简单电话拨号器
- Android移动view动画问题
- Android的分类ListView
- android学习之Service
- Android程序开发:简单电话拨号器
- Android 中文API —— Spinner