私のアプリには、ユーザーが複数のリマインダーを設定できる機能があります。しかし問題は、ユーザーがリマインダー A の時間を設定し、リマインダー B の時間を設定した場合、リマインダー B だけが着信を受けることです。これが、リマインダー A が電話を受けないという意図です。一言で言えば、常に1つのリマインダーだけが機能しています。リマインダーの設定とブロードキャストの呼び出しのスニペットを次に示します。
public void setAlarm(int dayValue, int monthValue, int yearValue, int hourValue, int minValue, String message, int pos){
int ID = 1;
calendar.set(yearValue, monthValue, dayValue, hourValue, minValue, 0);
Calendar tempCal = Calendar.getInstance();
Intent intent = new Intent(context,ReminderNissan.class);
intent.putExtra("title",message);
intent.putExtra("note",message);
intent.putExtra("id", pos);
Log.d("****Indide set alarm method*****", "PSOITION " + pos);
if((tempCal.compareTo(calendar)== -1) || (tempCal.compareTo(calendar)== 0)){
try{
db.open();
db.setAlarm(id.get(pos).toString(), 1);
db.close();
}catch(SQLException exp){
Log.d("SET ALARM OFF SQL EXCEPTION", exp.toString());
}
PendingIntent sender = PendingIntent.getBroadcast(context, ID,intent,0);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
//Toast.makeText(context, "*** ALARM SET AT *** " + pos, Toast.LENGTH_SHORT).show();
}else{
try{
db.open();
db.setAlarm(id.get(pos).toString(), 0);
db.close();
}catch(SQLException exp){
Log.d("SET ALARM OFF SQL EXCEPTION", exp.toString());
}
Toast.makeText(context, "Time Has Alredy Passed. Set proper Time. ", Toast.LENGTH_SHORT).show();
}
}