public static void setAlerm(Context context, Alerm alerm) { int dateMode = alerm.getMode(); String startTime = alerm.getStartTime(); String dateValue = alerm.getDateValue(); long next = computeNextAlarm(dateMode, dateValue, startTime); Log.i("next", "------next=" + next); Log.d("ldx", "nextTime: " + formatDate(next) + " , action: " + alerm.notifyId); Intent intent = new Intent(context, EAlarmReceiver.class); intent.setAction(alerm.notifyId); intent.putExtra(Const.KEY_DATA, alerm); PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); if (next == 0) { am.set(AlarmManager.RTC_WAKEUP, alerm.start_time, pi); } else { am.setRepeating(AlarmManager.RTC_WAKEUP, alerm.start_time, next, pi); } System.out.println(alerm.start_time + "----------------" + next); System.out.println(alerm.start_time - next + "======"); }