Android取消挂起的意图不起作用

Android取消挂起的意图不起作用,android,android-pendingintent,Android,Android Pendingintent,我面临着一个非常奇怪的问题。我已经做了一个工作报警系统。但当我删除警报时,它会调用它 AlarmBuddy.java(用于设置原始报警的工作类) java漏洞 此功能用于取消报警。再说一遍,这有点问题: 该代码可以设置并调用警报。但当我从另一个类中删除它时,它会立即发出警报。也许我只是个傻瓜。或者这可能是一个无法解决的问题。在我的应用程序中,这对我来说根本不起作用 在我的应用程序中,这对我来说非常有用 要取消报警,您需要使用与设置报警相同的pendingent。您还应该告诉AlarmManage

我面临着一个非常奇怪的问题。我已经做了一个工作报警系统。但当我删除警报时,它会调用它

AlarmBuddy.java(用于设置原始报警的工作类)

java漏洞

此功能用于取消报警。再说一遍,这有点问题:


该代码可以设置并调用警报。但当我从另一个类中删除它时,它会立即发出警报。也许我只是个傻瓜。或者这可能是一个无法解决的问题。

在我的应用程序中,这对我来说根本不起作用


在我的应用程序中,这对我来说非常有用


要取消报警,您需要使用与设置报警相同的
pendingent
。您还应该告诉
AlarmManager
取消报警以及取消
PendingEvent
。试试这个:

public Boolean cancelAlarm(int id) {
    Intent myIntent = new Intent(context, AlarmMiddle.class);
    PendingIntent pending_intent = PendingIntent.getBroadcast(context, id, myIntent,
                     PendingIntent.FLAG_NO_CREATE);
    if (pending_intent != null) {
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.cancel(pending_intent);
        pending_intent.cancel();
    }
    return false;
}

要取消报警,您需要使用与设置报警相同的
pendingent
。您还应该告诉
AlarmManager
取消报警以及取消
PendingEvent
。试试这个:

public Boolean cancelAlarm(int id) {
    Intent myIntent = new Intent(context, AlarmMiddle.class);
    PendingIntent pending_intent = PendingIntent.getBroadcast(context, id, myIntent,
                     PendingIntent.FLAG_NO_CREATE);
    if (pending_intent != null) {
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.cancel(pending_intent);
        pending_intent.cancel();
    }
    return false;
}

你好,尼克·索尼。谢谢,奇怪的错误消失了。但警报现在并没有解除。停!你好,尼克·索尼。谢谢,奇怪的错误消失了。但警报现在并没有解除。停!
 Intent intent = new Intent(getBaseContext(), Your_Service.class);
 PendingIntent pendingIntent = PendingIntent.getService(getBaseContext(), reqcode, intent, 0);
 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
 alarmManager.cancel(pendingIntent);
public Boolean cancelAlarm(int id) {
    Intent myIntent = new Intent(context, AlarmMiddle.class);
    PendingIntent pending_intent = PendingIntent.getBroadcast(context, id, myIntent,
                     PendingIntent.FLAG_NO_CREATE);
    if (pending_intent != null) {
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.cancel(pending_intent);
        pending_intent.cancel();
    }
    return false;
}