【问题标题】:How to stop Alarm tone pragmatically in android studio如何在android studio中务实地停止闹钟铃声
【发布时间】:2017-10-08 04:01:03
【问题描述】:

我的闹钟代码运行良好,因为默认铃声可以按时正常播放。但无法停止警报音。在接收器类中,我插入了以下代码。

try {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        Ringtone r = RingtoneManager.getRingtone(context, notification);
        r.play();
    } catch (Exception e) {
        e.printStackTrace();
    }

我还在主类中插入了取消警报的代码,代码也很好用

alarmMgr.cancel(pendingIntent);

但是一旦默认铃声开始播放并且用户想通过停止按钮停止它,它就不起作用了。 在带有 stopbutton.setOnClickListener 的主类中,我插入了以下代码

Intent intent = new Intent(getBaseContext(), Reciver.class);
stopService(intent);

我认为可以通过 r.stop(); 但是我应该如何在停止按钮中使用它。

【问题讨论】:

  • 不准确,如果我没记错的话,您将停止按钮放在自己的 UI 上,但它不起作用,我说的对吗?
  • 我在主布局中有三个按钮与主类连接。开始按钮调用警报管理器并唤醒接收器类(r.play 在这个类中)并且运行良好。取消按钮取消警报。现在第三个按钮是停止按钮。

标签: java android


【解决方案1】:

创建一个Ringtone 的全局实例,并在按钮上单击使用r.stop() 使用此link 来执行服务中的操作。让我知道我是否正确理解了这个问题。

【讨论】:

  • 我按照您的建议进行了编码,并且成功了。非常感谢兄弟。
  • 如果有帮助,请点赞,对他人也有帮助
  • 怎么做?我应该选择上箭头吗?
  • 好的,我正在这样做,它的意思是“感谢您的反馈!声望低于 15 人的投票会被记录下来,但不要更改公开显示的帖子分数。
【解决方案2】:

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

查看在取消事件期间运行良好的一段代码。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多