Привет, Йи Цзян, спасибо за ответ, я правильно устанавливаю свое время и сигнализация срабатывает в указанное время, как я указал в своем коде. Я просто опустил код, где я указываю время. Проблема, которую я не могу решить, заключается в том, что я устанавливаю два аварийных сигнала одновременно, например, первый раз в 2 часа, а другой - в 2:15 одновременно, как только я нажимаю кнопку сохранения. Теперь срабатывает только 1 сигнал тревоги, то есть первый на 2 часа, другой не показывает и не отображает никаких ошибок. Когда я отлаживаю, logCat показывает, что только 1 сигнал поставлен в очередь, а другой не использует currentSystemTime для пи

о, позвольте мне изменить вопрос и сделать его намного проще. Надеюсь, вы сможете найти мне решение для этого. Обе тревоги должны быть запланированы одновременно, чего здесь не происходит. Я даже использую уникальный код запроса для ожидающего намерения.Помоги мне, пожалуйста.....

// При нажатии Слушатель

private OnClickListener mOneShotListener = new OnClickListener() {
    public void onClick(View v) {

        Intent intent = new Intent(AlarmController.this, OneShotAlarm.class);
        PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, 0);
        //I even tried sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, PendinIntent.FLAG_UPDATE_CURRENT);


        //the alarm to go off 30 seconds from now.

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 30);

        // Schedule the alarm!

        AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

        //adds 2 minutes to the time

        calendar.add(Calendar.MINUTE, 2);

        sender = PendingIntent.getBroadcast(AlarmController.this,1, intent,0);
        am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender2);
    }
};

СТАРЫЙ Вопрос:
Я хочу установить две тревоги одновременно для двух разных операций.

Например, Пользователь устанавливает будильник на 2 часа и устанавливает продолжительность на 15 минут. Первый аварийный сигнал должен срабатывать в 2 часа, который выполняет функцию 1, а второй аварийный сигнал должен срабатывать в 2:15, поскольку пользователь указал продолжительность в 15 минут, которая выполняет функцию 2. Эту операцию следует повторять каждый день в 2 часа, если пользователь не изменит время.

Я вызываю обе эти функции по нажатию кнопки:

Событие при нажатии

saveButton.setOnClickListener(new View.OnClickListener() {  
    public void onClick(View view) {  
        ..........  
        ..........  
        new ReminderManager(this).setReminder(mRowId, mCalendar);  
        new ReminderManager(this).wakeReminder(mRowId, mCalendar, duration);  
        }  
    }

SetReminder содержит

// устанавливает будильник на 2 часа

public void setReminder(Long taskId, Calendar when, String duration){  
    Intent i = new Intent(mContext, OnAlarmReceiver.class);
    i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);    
    PendingIntent pi = PendingIntent.getBroadcast(mContext,(int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT);    
    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);    
}

WakeReminder содержит

// добавляет длительность, т.е. 15 минут

public void wakeReminder(Long taskId, Calendar when, String duration){
    Intent i = new Intent(mContext, OnAlarmReceiverWake.class);
    i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);
        Long d = Long.parseLong(duration);
        Long mins = d*60*100; 
        Long milli = when.getTimeInMillis() + mins;
        PendingIntent  pi = PendingIntent.getBroadcast(mContext, (int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT);
        mAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi);
}

Я заметил, что всякий раз, когдаmAlarmManager.set(); успешно выполненLogCat показывает уведомление как
"enqueueToast pkg=com.jellboi.android.togglemode callback=android.app ITransientNotification$stub$proxy@43c0c5f8 duration=0"

но когда я устанавливаю обе тревоги одновременно, уведомление не отображается, когдаmAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi); выполняется, но уведомление отображается, когдаmAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi); выполнен. Также уведомление устанавливается для исходного времени, то есть 2 часа, а не после добавления 15 минут к его продолжительности.

Пожалуйста, помогите, я пробовал много способов вызова этой функции в разных местах, например, после срабатывания 1-го сигнала, но все напрасно.

Ответы на вопрос(6)

Ваш ответ на вопрос