Android Can';t从另一个活动停止响铃报警

Android Can';t从另一个活动停止响铃报警,android,alarmmanager,android-pendingintent,Android,Alarmmanager,Android Pendingintent,我是android新手,在这里我正在练习我的第一个应用程序(报警应用程序) 我的应用程序中有一个问题,即一旦触发警报,我就无法停止警报。它一直在响,无法停止 在我的应用程序中,我有2个活动和一个AlarmReceiver 在AlarmActivity.java中,我设置了警报,当达到特定时间时,Alarmreceiver.java将被触发,警报开始鸣响并显示唤醒屏幕 在WakeUpScreen.java中,我有一个停止按钮,使用该按钮我需要停止当前的铃声警报 我在logcat中也没有任何问题 A

我是android新手,在这里我正在练习我的第一个应用程序(报警应用程序)

我的应用程序中有一个问题,即一旦触发警报,我就无法停止警报。它一直在响,无法停止

在我的应用程序中,我有2个活动和一个AlarmReceiver

在AlarmActivity.java中,我设置了警报,当达到特定时间时,Alarmreceiver.java将被触发,警报开始鸣响并显示唤醒屏幕

在WakeUpScreen.java中,我有一个停止按钮,使用该按钮我需要停止当前的铃声警报

我在logcat中也没有任何问题

AlarmActivity.java

  public void stopAlarm(Context context) {
        Intent intent = new Intent(context,AlarmReceiver.class);
        intent.setAction("ALARM_OFF");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, mAlarmId, intent,PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
        alarmManager.cancel(pendingIntent);
    }
我在AlarmActivity.java中有一个AlarmStop()函数,当我按下wakeupscreen.java中的停止按钮时,该函数将被点击

当我尝试调试停止进程时,调试器移动了stopAlarm()函数中的所有行,但目的不起作用,这就是为什么没有调用AlarmReceiver.java文件,我的意思是,调试器在上述方法中移动了所有行,但没有调用AlarmReceiver.java

我尝试了很多方法来解决这个问题,但我错过了一些我无法解决的问题


有人能帮我停止触发的警报,它会发出响声。

您的体系结构已损坏。您不使用
广播接收器
进行持久处理。
BroadcastReceiver
的生命周期很短,你可以用它来触发其他事情

您已经在
BroadcastReceiver
中创建了一个
MediaPlayer
实例,并试图在
onReceive()
中控制该实例。这是错误的。您应该使用
服务
来管理和维护您的
MediaPlayer
的状态


看看你是否能在互联网上找到一些如何构建这样一个应用程序的指南。

你能帮我解决这个问题吗@Kling Klangyou不应该把你的媒体播放器挂在广播接收器上。更好的方法是在收到广播后启动活动或服务,然后让此活动或服务播放声音我希望我在stopAlarm()中做到了这一点函数@KlingklangThank非常感谢@DavidWasser几乎尝试了所有的方法来处理这段代码,但我仍然在努力使它工作。我能从你那里得到任何帮助来解决这个@DavidWasser吗