2015-06-15 3 views
0

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

MainActivity

private void setAlarm(Calendar targetCal, int id) { 

    txtSpeechInput.setText("Alarm set " + targetCal.getTime()+ ""); 
    intent = new Intent(this, AlarmReceiverActivity.class); 
    calendar_alarm.add(targetCal.getTime()); 
    Utils.setTimetosharedprefernces(targetCal.getTime(),MainActivity.this); 

    Log.e("adding id is --", _id+"") ; 

    pendingIntent = PendingIntent.getActivity(this,id,intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 
} 

Это мой отменить сигнал тревоги активность

AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
      Intent stopIntent = new Intent(this,MainActivity.class); 
      PendingIntent stopPI = PendingIntent.getBroadcast(MainActivity.mContext, Alarm_id.get(positon), 
        stopIntent, PendingIntent.FLAG_CANCEL_CURRENT); 
      flag=true; 
      Toast.makeText(getApplicationContext(), "canceleddd", 1000).show(); 
      stopPI.cancel(); 
      mgr.cancel(stopPI); 
      Alarm_id.remove(positon); 
      calendar_alarm.remove(positon); 
      deletealarm(positon); 
      adapter.notifyDataSetChanged(); 
} 
} 

public void deletealarm(int key) { 
    getSharedPreferences("Alarms", MODE_PRIVATE).edit() 
      .remove("ID" + (key + 1)).apply(); 
    getSharedPreferences("AlarmsTime", MODE_PRIVATE).edit() 
      .remove("THE_DATE" + (key + 1)).apply(); 
} 

ответ

0

Попробуйте этот код:

Это работает для меня:

public void cancelAlarm(Context context, int reminderid) 
    { 
     try 
     { 
      Intent intentAlarm = new Intent(context, AlarmReceiver.class); 
      PendingIntent morningIntent = PendingIntent.getBroadcast(context, reminderid, intentAlarm, PendingIntent.FLAG_CANCEL_CURRENT); 
      AlarmManager alarmManager = (AlarmManager) (context.getSystemService(Context.ALARM_SERVICE)); 
      alarmManager.cancel(morningIntent); 
      morningIntent.cancel(); 
     } catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

И, пожалуйста, подтвердите свой идентификатор путем отладки.

Смежные вопросы