我是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()函数中的所有行,但Intent无法正常工作,这就是为什么未调用AlarmReceiver.java文件的原因,我的意思是,调试器移动了上述方法中的所有行,但没有调用AlarmReceiver.java
我尝试了很多方法来解决此问题,但是我错过了一些我无法解决的问题。
谁能帮助我停止触发的警报,它会响起声音。
答案 0 :(得分:1)
您的体系结构已损坏。您不使用BroadcastReceiver
进行持久处理。 BroadcastReceiver
的生命周期很短,您可以用它来触发其他事情。
您已经在MediaPlayer
中创建了一个BroadcastReceiver
实例,并试图在onReceive()
中进行控制。错了您应该使用Service
来管理和维护MediaPlayer
的状态。
看看您是否可以在Internet上找到一些有关如何构建这样的应用程序的HOWTO指南。