问题:设置多个不同的提醒闹钟,但是提醒内容始终是一样,最后测试发现,intent值虽然赋进去了,但是不知道为啥  PendingIntent.getBroadcast(ScheduleView.this, 0, intent, 0);里的intent值输出来却是以前的。。。猜想 getBroadcast()函数的问题。
1: ScheduleView文件,设置闹钟的文件
Intent intent = new Intent(ScheduleView.this,AlarmReceiver.class); // 创建Intent对象intent.putExtra("scheduleText", scheduleText.getText().toString());intent.putExtra("scheduleStartTime", startHHmm);intent.putExtra("scheduleEndTime", endHHmm);System.out.println("----设置闹钟------");System.out.println("----内容:"+scheduleText.getText().toString());System.out.println("----时间:"+startHHmm+"-"+endHHmm);PendingIntent pi = PendingIntent.getBroadcast(ScheduleView.this, 0,intent, 0); // 创建PendingIntent// //设置闹钟alarmManager.set(AlarmManager.RTC_WAKEUP, alarmDate*1000, pi); // 设置闹钟,


  2: AlarmReceiver 文件 广播文件

public class AlarmReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) {    intent.putExtra("scheduleText", intent.getStringExtra("scheduleText"));    intent.putExtra("scheduleStartTime", intent.getStringExtra("scheduleStartTime"));    intent.putExtra("scheduleEndTime", intent.getStringExtra("scheduleEndTime"));    System.out.println("------闹钟广播-----");    System.out.println("------内容:"+intent.getStringExtra("scheduleText"));     intent.setClass(context,AlarmAlert.class);      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      context.startActivity(intent); }}



原因:查看了很多资料,是因为PendingIntent.getBroadcast(Context context, int requestCode, Intent intent, int flags)   第二个和第四个参数引起的。

解决:

int alarmCount=0;PendingIntent pi = PendingIntent.getBroadcast(ScheduleView.this,alarmCount++, intent,PendingIntent.FLAG_UPDATE_CURRENT); // 创建PendingIntent


将第二个参数设置成自增变量,保证每次不同,将第四个参数设置成及时更新。只有这两个参数都设置才有用。数据不变,更新了也没用,数据变了,不更新也没用。。


参考文章:

1: http://blog.csdn.net/huang_hws/article/details/7327670

2: http://www.reasono.com/?p=318





更多相关文章

  1. Android命令行启动app应用
  2. Android(安卓)WebView 软键盘遮挡输入框问题的解决方法
  3. android权限列表
  4. clearTaskOnLaunch的使用
  5. Android(安卓)PopupWindow使用详解
  6. android信得过的退出程序设置
  7. 一步一步学android OpenGL ES2.0编程(1)
  8. Android(安卓)开发之RecyclerView的使用
  9. Android(安卓)一个app启动另一个app

随机推荐

  1. Android事件分发机制详解
  2. Android(安卓)matrix中postTranslate和pr
  3. Android中的app忽略电池优化
  4. 解决Flutter Could not find lint-gradle
  5. android 图片去色返回灰度图片
  6. android 应用级别 亮度调节
  7. Android拖动条的实现代码
  8. android 用LocationManager获得最新定位
  9. android 如何判断程序是否在前台运行
  10. java android 获取手机操作系统相关信息