отмена тревоги - PullRequest
       27

отмена тревоги

1 голос
/ 13 декабря 2011

Я новичок в программировании для Android и Java, и у меня есть приложение, которое запускает несколько будильников и повторяет их каждый день. он работает нормально, но моя проблема в том, что когда я удаляю будильник, он продолжает срабатывать на следующий день они сказали мне использовать метод отмены, и я создал эту функцию:

public void deleteReminder(Long reminderId){
    Intent d = new Intent(mContext, Daily_OnAlarmReceiver.class);
    d.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId);

    int Daily_requestCode = reminderId.intValue(); 


    PendingIntent pid = PendingIntent.getBroadcast(mContext, Daily_requestCode, d, PendingIntent.FLAG_CANCEL_CURRENT); 

    mAlarmManager.cancel(pid);
}

Функция напоминания «Мой набор» выглядит следующим образом:

public void setReminder(Long reminderId, Calendar when) {

        Intent i = new Intent(mContext, Daily_OnAlarmReceiver.class);
        i.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId); 
        int Daily_requestCode = reminderId.intValue(); 

        PendingIntent pi = PendingIntent.getBroadcast(mContext, Daily_requestCode, i, PendingIntent.FLAG_CANCEL_CURRENT); 
        mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}

они оба помещены в файл AlarmManager.java.

следующий код находится в другом java-файле, который удаляет тревогу только из списка, но не мешает системе активировать тревогу:

public boolean onContextItemSelected(MenuItem item) {
            switch(item.getItemId()) {
            case R.id.menu_delete:

            AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
               mDbHelper.deleteDailyReminder(info.id);
               fillData();
               return true;
        }
            return super.onContextItemSelected(item);
        }

У меня вопрос, как вызвать этот new Daily_ReminderManager(this).deleteReminder(mRowId); в предыдущем коде, чтобы напоминание было удалено из списка и из диспетчера аварийных сигналов.

и мне интересно, правильный ли мой первый код

1 Ответ

0 голосов
/ 13 декабря 2011

Для отмены тревоги Intents должно соответствовать, как определено в filterEquals(..).

Это означает, что намерение действия, данные, тип, класс и категории должны быть одинаковыми.Дополнительные данные не используются в этом сравнении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...