每次发送一个pendingIntent的时候,Receiver接受的都是第一个

H100 2015-09-14 12:27:15
每次发送一个pendingIntent的时候,Receiver接受的都是第一个,接受者是manifest注册,使用的是显示意图,
Intent intent=new Intent(context,AlarmReceiver.class);//context,AlarmReceiver.class
intent.setAction("com.example.mischedule.alarm_first_action");//"com.example.mischedule.alarm_first_action"
intent.putExtra("posit", position);
//intent.putExtra("haha", "haha");
Log.v("verbose", "noticemanager position="+position);//这里打印传入的position确实是点击事件的position
PendingIntent pendingIntent=PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager am=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
//am.setRepeating(AlarmManager.RTC_WAKEUP,theRightMillis,WEEK_MILLI, pendingIntent);
am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+1000,WEEK_MILLI, pendingIntent);//用来测试,后期可以应该取消

if(intent.getAction()=="com.example.mischedule.alarm_first_action"){
String haha=intent.getStringExtra("haha");
//Log.v("verbose" , "收到的haha="+haha);
int position=intent.getIntExtra("posit", 0);
this.posit=position;
//下面打印得到的position
Log.v("verbose","fist receiver position"+position);

...全文
235 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
H100 2015-09-14
  • 打赏
  • 举报
回复
每次receiver打印出来的position都是第一次调用的position,跟后来传入的不一样
MR__P 2015-09-14
  • 打赏
  • 举报
回复
position怎么获取的 贴下
H100 2015-09-14
  • 打赏
  • 举报
回复
作为一个深夜还在敲程序的小程序员,大家能不能帮点忙
H100 2015-09-14
  • 打赏
  • 举报
回复
是不是沉了,自己顶下
H100 2015-09-14
  • 打赏
  • 举报
回复
引用 4 楼 pengguohua1988 的回复:
position怎么获取的 贴下
谢谢!int position=intent.getIntExtra("posit", 0);position怎么传入和怎么接受上门都有, 现在已经用另一个方法解决了,发现在构造pendingintent的时候传入的intent似乎不能设置extra,就是string 啊,int啊(正确来说启动Activity的时候只有第一次设置的有效),于是我就把int设置到了Action里面于是用Action传过去了

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧