Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中实用地停止报警音_Java_Android - Fatal编程技术网

Java 如何在android studio中实用地停止报警音

Java 如何在android studio中实用地停止报警音,java,android,Java,Android,我的报警代码工作正常,因为默认铃声按时播放。但无法停止报警音。在receiver类中,我插入了以下代码 try { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); Ringtone r = RingtoneManager.getRingtone(context, notification); r.play(); } catch (Ex

我的报警代码工作正常,因为默认铃声按时播放。但无法停止报警音。在receiver类中,我插入了以下代码

try {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        Ringtone r = RingtoneManager.getRingtone(context, notification);
        r.play();
    } catch (Exception e) {
        e.printStackTrace();
    }
我还在main类中插入了cancel the alarm的代码,该代码也可以很好地使用

alarmMgr.cancel(pendingIntent);
但一旦默认铃声开始播放,用户希望通过“停止”按钮停止播放,则该铃声将不起作用。 在带有stopbutton.setOnClickListener的main类中,我插入了以下代码

Intent intent = new Intent(getBaseContext(), Reciver.class);
stopService(intent);
我想它可以停在r.stop();
但是我应该如何在“停止”按钮中使用它。

创建一个
铃声的全局实例
,然后在按钮上单击“使用”
r.stop()
使用它在服务中执行操作。让我知道我是否正确理解了问题。

创建一个
铃声的全局实例,然后在按钮上单击使用
r.stop()
使用此选项在服务中执行操作。如果我正确理解了问题,请告诉我。

在您安排报警时注册的广播意图,但为了确保取消,您必须注册另一个意图,该意图将向系统广播取消事件

查看在cancel事件中工作正常的代码段

 Intent intent = new Intent(this, YourReceiver.class);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 123, intent, 0);
 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 alarmManager.cancel(pendingIntent);

在您计划报警时注册的广播意图,但为了确保取消,您必须注册另一个将向系统广播取消事件的意图

查看在cancel事件中工作正常的代码段

 Intent intent = new Intent(this, YourReceiver.class);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 123, intent, 0);
 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 alarmManager.cancel(pendingIntent);

没有,如果我没有错的话,你把停止按钮放在你自己的UI上,但它不工作,对吗?我在主布局中有三个按钮与主类连接。启动按钮呼叫报警管理器和唤醒接收器类(r.play在此类中),并且工作正常。取消按钮取消警报。现在第三个按钮是停止按钮。不,确切地说,如果我没有错,你把停止按钮放在你自己的UI上,但它不工作,对吗?我在主布局中有三个按钮与主类连接。启动按钮呼叫报警管理器和唤醒接收器类(r.play在此类中),并且工作正常。取消按钮取消警报。现在第三个按钮是停止按钮。我按照你的建议做了编码,它工作了。非常感谢兄弟。如果这对你有帮助的话,请把它投上去,它也会对别人有帮助。怎么做呢?我应该选择上面的箭头吗?好的,我正在这样做,它说“谢谢你的反馈!那些声誉低于15的人所投的票会被记录下来,但不要改变公开显示的帖子分数。我按照你的建议进行了编码,结果成功了。非常感谢兄弟。如果这对你有帮助的话,请把它投上去,它也会对别人有帮助。怎么做呢?我应该选择上面的箭头吗?好的,我正在这样做,它说“谢谢你的反馈!记录那些声誉低于15的人的投票,但不要改变公开显示的帖子分数。”。