无法停止另一个 activity 的闹铃
Can't stop the ringing alarm from another activity
我是android新手,在这里练习我的第一个应用程序(Alarm App)。
我的应用程序有一个问题,一旦触发闹钟,我就无法停止闹钟,它一直在响,无法停止。
在我的应用程序中,我有 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 没有被调用
我尝试了很多方法来解决这个问题,但我遗漏了一些我无法理解的东西。
谁能帮我停止触发的警报和铃声。
你的架构坏了。您不使用 BroadcastReceiver
进行持久处理。 BroadcastReceiver
的生命周期很短,你用它来触发其他事情。
您已经在 BroadcastReceiver
中创建了一个 MediaPlayer
实例,并试图在 onReceive()
中控制它。这是错误的。您应该使用 Service
来管理和维护 MediaPlayer
.
的状态
看看是否可以在 Internet 上找到一些关于如何构建此类应用程序的 HOWTO 指南。
我是android新手,在这里练习我的第一个应用程序(Alarm App)。
我的应用程序有一个问题,一旦触发闹钟,我就无法停止闹钟,它一直在响,无法停止。
在我的应用程序中,我有 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 没有被调用
我尝试了很多方法来解决这个问题,但我遗漏了一些我无法理解的东西。
谁能帮我停止触发的警报和铃声。
你的架构坏了。您不使用 BroadcastReceiver
进行持久处理。 BroadcastReceiver
的生命周期很短,你用它来触发其他事情。
您已经在 BroadcastReceiver
中创建了一个 MediaPlayer
实例,并试图在 onReceive()
中控制它。这是错误的。您应该使用 Service
来管理和维护 MediaPlayer
.
看看是否可以在 Internet 上找到一些关于如何构建此类应用程序的 HOWTO 指南。