public void SetAlarm(Cursor cursor) {
        AlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        calendar = new GregorianCalendar();
        Intent To_Alarm_AlertActivity = new Intent(
                getApplicationContext(), Alarm_AlertActivity.class);
        cursor.moveToPosition(-1);
        while (cursor.moveToNext()) {
            if (cursor.getInt(1) == 1) {
                if (cursor.getInt(5) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 + 1, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", cursor.getInt(0) * 10 + 1 + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+1, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }

                if (cursor.getInt(6) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +2, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 2) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                             calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+2, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
                
                if (cursor.getInt(7) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +3, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 3) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+3, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
                
                if (cursor.getInt(8) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +4, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 4) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+4, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
                
                if (cursor.getInt(9) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +5, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 5) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+5, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
                
                if (cursor.getInt(10) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +6, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 6) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+6, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
                
                if (cursor.getInt(11) == 1) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +7, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 7) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+7, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }

                if (cursor.getInt(5) == 0 && cursor.getInt(6) == 0 &&
                        cursor.getInt(7) == 0 && cursor.getInt(8) == 0 &&
                        cursor.getInt(9) == 0 && cursor.getInt(10) == 0 &&
                        cursor.getInt(11) == 0) {
                    PendingIntent pendingintent = PendingIntent.getActivity(getApplicationContext(), 
                            cursor.getInt(0)*10 +8, To_Alarm_AlertActivity, PendingIntent.FLAG_UPDATE_CURRENT);
                    Log.d("RequestCode", (cursor.getInt(0) * 10 + 8) + "");
                    calendar.set(calendar.get(Calendar.YEAR),
                            calendar.get(Calendar.MONTH),
                            calendar.get(Calendar.DAY_OF_MONTH),
                            cursor.getInt(2), cursor.getInt(3)+8, 00);
                    Log.d("AlarmSetting", calendar.getTime() + "");
                    AlarmManager.set(android.app.AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pendingintent);
                }
            }
        }
    }


제가 구현한 setalarm() 부분입니다.


데이터베이스의 컬럼0에는 알람을 구분할 id값이, 컬럼 2에는 시간이, 3에는 분이 들어있습니다.


데이터베이스에는 컬럼넘버가 5번 부터 11번 까지에는 0혹은 1의 값이 들어있으며,


구현한대로 각값이 0혹은 1에 따라 pendingintent의 requestcode값을 달리해주며 알람이 여러개 설정되게끔 했습니다.


이 setalarm()부분은 알람의 메인엑티비티가 oncreate 될때와 알람 추가버튼을 이용해서 알람 추가후 다시 메인 엑티비티로


돌아오는 onActivityResult 부분에서 사용했습니다.


근데 문제는 만약 오전 10시에 알람을 맞췄다면 오전 11시에 알람을 키면 펜딩인텐트가 작동해 버립니다. 


즉, 지나간 알람이 작동을 하는거죠 ㅠㅠ 왜이런건가요....알람메니저의 set기능에 시간을 밀리세컨드 단위로 넣어주면


그 시간에 울리는거 아닌가요? ㅠㅠ