Android 安卓:警报';s BoradcastReceiver类从意图对象中获取错误的额外整数
我正在开发一个有3个按钮的应用程序。例如,按钮1用于5分钟,按钮2用于10分钟,按钮3用于15分钟 当用户单击其中一个按钮时,我设置该时间的报警。我使用Android 安卓:警报';s BoradcastReceiver类从意图对象中获取错误的额外整数,android,android-intent,android-alarms,Android,Android Intent,Android Alarms,我正在开发一个有3个按钮的应用程序。例如,按钮1用于5分钟,按钮2用于10分钟,按钮3用于15分钟 当用户单击其中一个按钮时,我设置该时间的报警。我使用OneShotAlarm.class作为报警的广播接收器。我将报警时间(5、10或15分钟)设置为触发报警,如 Intent alarm_intent = new Intent(context, OneShotAlarm.class); alarm_intent.putExtra(SNOOZE_TIME, 5); 我正试图在OneShotAla
OneShotAlarm.class
作为报警的广播接收器。我将报警时间(5、10或15分钟)设置为触发报警,如
Intent alarm_intent = new Intent(context, OneShotAlarm.class);
alarm_intent.putExtra(SNOOZE_TIME, 5);
我正试图在OneShotAlarm.class中检索这个,但不知怎么的,不管我在设置报警时的意图是什么,它都会一直在那里取5
虽然所有选项都会在正确的时间正确触发报警,但我没有从intent的Integer extra中正确获取OnShotAlarm.class
中的值
我对所有报警使用相同的报警请求代码,但每次设置报警时都会创建新对象
希望,我已经澄清了这个问题。请帮我指出我遗漏了什么
编辑:
我忘了指定这三个按钮在一个小部件中,我使用broadvcast接收器捕捉它们的点击。很抱歉,当您试图帮助我时给我带来不便 我在小部件中使用了这三个按钮。我忘了在我的问题中指定,对不起 我的代码中没有问题,这是正确的。但是我过去用来调用BroadcastReceiver来捕捉小部件按钮的点击,有一个小问题 我在WidgetProvider类的onUpdate()中使用了这些行
receiver = new Intent(context, ClickCounterWidgetReceiver.class);
receiver.setAction("SET_SNOOZE");
receiver.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, 0);
将行更改为以下行解决了问题:
pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);
你能在闹钟上为设定时间张贴按钮选择代码吗?可能问题在于对你的等待意图使用相同的请求代码。一周前我自己刚刚解决了这个问题。您需要使用不同的请求代码,否则Android将重用您的挂起意图,而不会更改它们。@Egor:谢谢您的响应。实际上,我在一个小部件中使用了这个按钮,做了一点小小的更改,它就工作了。相同的请求代码不是问题!:)@希拉尔,不客气!如果我帮了你,我会很高兴的@user370305:谢谢您的回复,我能够解决它。请阅读我的答案!这是一件愚蠢的事P