Android设置多个定时器时只有最后一个有效的问题解决
来源:互联网 发布:linux usb驱动开发 编辑:程序博客网 时间:2024/05/22 00:48
先看这段API:
我们会用到PendingIntent 来获取一个实例它有四个参数:
PendingIntent pi = PendingIntent.getBroadcast(context, requestCode, intent, flags)
content 和 intent 比较熟悉,不必多说
主要是flag,它有以下参数:
FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。
FLAG_NO_CREATE:如果当前系统中不存在相同的PendingIntent对象,系统将不会创建该PendingIntent对象而是直接返回null。
FLAG_ONE_SHOT:该PendingIntent只作用一次,如果该PendingIntent对象已经触发过一次,那么下次再获取该PendingIntent并且再触发时,系统将会返回一个SendIntentException,在使用这个标志的时候一定要注意哦。
FLAG_UPDATE_CURRENT:如果系统中已存在该PendingIntent对象,那么系统将保留该PendingIntent对象,但是会使用新的Intent来更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras。这个非常有用,例如之前提到的,我们需要在每次更新之后更新Intent中的Extras数据,达到在不同时机传递给MainActivity不同的参数,实现不同的效果。
最终我的代码改成这样解决了问题:
if(cur.moveToLast()) {ID = cur.getInt(0);}//实例化PendingIntentfinal PendingIntent pi = PendingIntent.getBroadcast(Main_Message.this, ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);//获得系统时间final long time1 = System.currentTimeMillis();Calendar c = Calendar.getInstance();c.set(m_Year, m_Mouth, m_Day, m_Hour, m_Minute);//得到long time2 = c.getTimeInMillis();if(flag && (time2 - time1)>0 && ON_OFF==1) {am.set(AlarmManager.RTC_WAKEUP, time2, pi);} else {am.cancel(pi);}
- Android设置多个定时器时只有最后一个有效的问题解决
- Android设置多个定时器时只有最后一个定时器有效的问题
- Android设置多个定时器时只有最后一个定时器有效的问题
- Android设置多个定时器时只有最后一个定时器有效的问题
- Android AlarmManager设置多个定时事件时只最后一个有效问题解决
- Android AlarmManager设置多个定时事件时只最后一个有效问题解决
- Android AlarmManager设置多个定时事件时只最后一个有效问题解决
- Android AlarmManager设置多个定时事件时只最后一个有效问题解决
- cocos2dx多个精灵调用runAction()方法执行组合动作,只有最后一个精灵有效的问题
- iOS 一个UIGestureRecognizer绑定多个view只有最后一个有效
- js循环添加监听器时 只有最后一个有效
- js限制input只能输入有效的数字,有且只有一个小数点,第一个不能为小数点
- Android Notification多个通知跳转Activity总会被最后一个替换的问题
- SpannableStringBuilder.setSpan多次设置仅最后一次有效的问题
- quartz框架如何设置只有一个定时任务但是可以多个时间段来执行
- 猴子选大王,有1-100个数字,每数6位删除一个,顺序循环,最后只有一个数字的时候是1-100中的几?
- 在activity中使用多个fragment时设置第一个fragment的沉浸栏有效,其他无效解决办法
- 在activity中使用多个fragment时设置第一个fragment的沉浸栏有效,其他无效解决办法
- [MFC] 编辑框间数据交换 [大三TJB_708]
- FileInputFormat setInputPaths 和 采用listStatus 对比
- ubuntu编译x264与ffmpeg--总结
- MapReduce:计算Job运行时的CPU与内存平均利用率
- 未解决问题
- Android设置多个定时器时只有最后一个有效的问题解决
- windows 2003 下的 apache(2.2.23)+tomcat(7.0.35)+php(5.3.21) 集成
- struts.xml和struts.properties
- artDialog 配置参数
- PHP+IIS8+MySql出现的数据库链接错误
- JAVA 常见 Exception
- linux下查看十六进制文件方法
- 参考消息
- Oracle rownum 伪列