Как отменить сигнал тревоги, который запускается в действии, и отменить его в приемнике вещания - PullRequest
0 голосов
/ 19 декабря 2018

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

Я проверил здесь различные сообщения, но ничего не помогло.

Код, который я использую, выглядит следующим образом:

MainActivity.java

                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(mydateobj.getTime());
                calendar.set(Calendar.HOUR_OF_DAY, 9);
                calendar.set(Calendar.MINUTE, 20);
                Intent intent = new Intent(MainActivity.this, Myreceiver.class);
                AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                intent.putExtra("pendingIntent",pendingIntent);
                alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

И моя Broadcastreceiver реализациякак показано ниже:

 @Override
    public void onReceive(Context context, Intent intent) {

        Intent  newIntent = new Intent(context,Myreceiver.class);
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        if(intent!= null) {

            PendingIntent pendingIntent = intent.getParcelableExtra("pendingIntent");
            if(pendingIntent!=null)
            {

                alarmManager.cancel(pendingIntent);
                pendingIntent.cancel();
            }
        }

Я получаю нулевое значение pendingIntent, поэтому оно не отменяется, поэтому я получаю повторное уведомление.

Я также пытался создать PendingIntent в моем приемнике стот же идентификатор и флаг, и попытался отменить диспетчер аварий, а также pendingIntent , созданный в этом приемнике, однако он не работал.

Любая помощь приветствуется.

...