2012-02-21 8 views
0

ユーザーがアラームを設定するには、アラームを設定する意図を送信する必要がありますが、ユーザーは多くのアラームを持つことができますが、各エントリはアラームを開始するためのものと、それらを削除するために意志を消す必要があるアラームを削除したいと思うが、それらは正確に同じである必要があるので、私はそれをどうやって行うのですか?上記の目的で別の意図がありますか?

Intent endAlarmIntent = new Intent(setAndroidAlarmContext, EndTimeAndroid.class); 
       PendingIntent endIntent = PendingIntent.getBroadcast(setAndroidAlarmContext, 14 , endAlarmIntent, 0); 
       setAlarm.setRepeating(AlarmManager.RTC_WAKEUP, endSun, daysBetweenAlrm , endIntent); 

14は、イムはそれを終了するとき、私は後でそれを見つけることができます私はそれで14と意図を持っているが、問題は2つの意図があった場合は、それらの二つが、それは希望ので、14を持っている可能性があることですこれを止める最善の方法は何かを明らかにして、ランダム番号を取得してデータベースに保存し、それを同じにするという意図を削除するときに送信してください。

+4

"インテント"タイプごとに1つのインテントを持つことは簡単ではないでしょうか?たとえば、 'StartAlarm(alarmNumber)'? Intentオブジェクトで 'setExtras'と' getExtras'を使って、少なくともキーと値のペアの引数を設定することができます。 – ravuya

答えて

0

私はややランダム一意の識別子を生成するためにint

このような
int uniqueCode = (int)System.currentTimeMillis(); 

にシステム時刻を設定し、各アラームのPendingIntentためにそう私のアプリでは、ユーザはまた、アラームの未定義の数を生成しています(longintに切り捨てられますが、それは問題ありません)。

そして、(あなたのコードを使用して)このように、それを識別しPendingIntent固有のコードとして設定します:

PendingIntent endIntent = PendingIntent.getBroadcast(setAndroidAlarmContext, uniqueCode , endAlarmIntent, 0); 

その後、私のデータベースに私はそのようにアラームのための他のデータとのalarm_idためのフィールドを持っています私は必要に応じていつでもそのアラームを更新またはキャンセルできます。

また、@ravuyaが言ったことをやって、Intentを1つ使用して、そのアラームの種類を伝えるために、エクストラを介して引数を渡します。

+0

これはすばらしいアイディアです。 – bob

関連する問題