1

我正在开发一个应用程序,其中有 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从 Integer 额外的 Integer 中正确获取值。

我对所有警报使用相同的警报请求代码,但每次设置警报时都会创建新对象。这是,如果它担心的话。

希望,我已经解决了这个问题。请帮我指出我错过了什么?

编辑 :

我忘记指定这三个按钮在一个小部件中,我使用广播接收器来捕捉他们的点击。对于您试图帮助我时给您带来的不便,我们深表歉意!

4

1 回答 1

0

我在小部件中使用这三个按钮。我忘了在我的问题中指定,对不起!

我的代码没有问题,它是正确的。但是我用来捕捉小部件按钮点击的广播接收器有一个小问题。

我在 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);
于 2012-02-23T09:50:53.077 回答