Я пытаюсь протестировать аварийный менеджер, и я могу заставить его работать. Через BroadcastReceiver я запускаю службу для создания уведомления. Мне удалось это сделать с помощью материалов, которые я также нашел здесь. Проблема, с которой я столкнулся сейчас и которая заставила меня застрять на день, - это отмена созданного мной повторяющегося будильника. Он только сказал, что он должен соответствовать ожидающему намерению, которое использовалось для его создания, и я также жестко закодировал идентификаторы, чтобы убедиться, что они совпадают. Для неподготовленного глаза, такого как мой, я не вижу разницы с примерами, которые я прочитал здесь, но я надеюсь, что вы поможете мне найти то, что мне нужно изменить.
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import java.util.Calendar;
public class CreateNotificationActivity extends Activity {
private PendingIntent pendingIntent;
private static AlarmManager alarmManager;
private Intent myIntent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(alarmManager == null){
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
}
myIntent = new Intent(this , Receiver.class);
}
public void createNotification(View view) {
pendingIntent = PendingIntent.getBroadcast(this, 1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000, pendingIntent);
}
public void cancelNotification(View view) {
pendingIntent = PendingIntent.getBroadcast(this, 1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
}
}
как отменить будильник, который я создал? и есть ли способ отменить все тревоги без идентификатора?