1

ボタンが3つあるアプリケーションを開発しています。たとえば、button_1で5分、button_2で10分、button_3で15分です。

ユーザーがボタンの1つをクリックすると、その時間にアラームを設定します。アラームのOneShotAlarm.classBroadcastReceiverとして使用しています。alarm_time(5、10、または15分)を次のようなアラームを鳴らすために配置します。

Intent alarm_intent = new Intent(context, OneShotAlarm.class);
alarm_intent.putExtra(SNOOZE_TIME, 5);

そして、私はこれを取得しようとしていますOneShotAlarm.classが、どういうわけか、アラームを設定するときに意図したものは何でもそこに5を取り続けます。

OnShotAlarm.classすべてのオプションに対して正しいタイミングでアラームが発生しますが、インテントの整数エクストラから値を正しく取得できません。

私はすべてのアラームに同じアラーム要求コードを使用していますが、アラームを設定するために毎回新しいオブジェクトを作成します。これは、懸念がある場合です。

質問を十分にクリアしたことを願っています。私が欠けているものを指摘するのを手伝ってください。

編集 :

これらの3つのボタンがウィジェットにあることを指定するのを忘れており、broadvcastレシーバーを使用してクリックをキャッチしています。ご不便をおかけして申し訳ありません。

4

1 に答える 1

0

ウィジェットでこれらの 3 つのボタンを使用していました。質問で指定するのを忘れていました。申し訳ありません。

私のコードに問題はありませんでした。それは正しかったのですが、ウィジェットのボタンのクリックをキャッチするために 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);
于 2012-02-23T09:50:53.077 に答える