我正在开发一个应用程序,其中有3个按钮。其中,button_1为 5分钟,button_2为 10分钟,button_3为 15分钟
当用户点击其中一个按钮时,我设置了那个时间的闹钟。我正在使用OneShotAlarm.class
作为BroadcastReceiver进行报警。我将alarm_time(5,10或15分钟)置于意图点火,如,
Intent alarm_intent = new Intent(context, OneShotAlarm.class);
alarm_intent.putExtra(SNOOZE_TIME, 5);
我正试图在OneShotAlarm.class
中检索这个,但不知何故,它会在设置闹钟的时候继续将5放在那里。
虽然警报会在正确的时间正确地触发所有选项,但我没有在OnShotAlarm.class
中从intent的Integer extra中正确获取值。
我对所有警报都使用相同的警报请求代码,但每次都会设置新对象来设置警报。如果有问题,我会这样做。
希望,我已经清楚了解了这个问题。请帮助我指出我错过了什么?
编辑:
我忘了指定这三个按钮都在一个小部件中,我使用一个广播接收器来捕捉他们的点击。当你试图努力帮助我时,请给您带来不便!
答案 0 :(得分:0)
我在widget中使用了这三个按钮。我忘了在我的问题中指出,我很抱歉!
我的代码没有问题,这是正确的。但是我曾经称之为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);
将行更改为低于1解决了问题:
pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);