用户按下主页按钮时停止闹钟

时间:2011-11-08 00:36:34

标签: java android

我正在为我的应用程序设置警报功能,在某个时间,警报活动开始,随后启动振动或铃声。我遇到的问题是,如果用户按下主页按钮,振动或铃声不会停止。

我已覆盖onKeyDown,以便在按下按钮时停止闹钟,但不拦截主页按钮代码:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (mVibrator != null)
        mVibrator.cancel();
    if (mPlayer != null) {
        mPlayer.stop();
        mPlayer.release();
    }
    return super.onKeyDown(keyCode, event);
}

当发生这种情况时,如何停止振动/铃声?

3 个答案:

答案 0 :(得分:1)

我建议在onPause()停止闹钟。只要另一个应用程序到达前台(包括主屏幕),就会调用它。

答案 1 :(得分:0)

你不能拦截主页按钮 - 因为任何应用程序应该允许用户按回家立即进入主屏幕。如果你想要相同的效果,你应该考虑在onStop()中停止闹钟。

答案 2 :(得分:-1)

  1. 主页事件被框架拦截,不会传递给应用程序层,因此您无法监控此事件。
  2. 我的解决方案是你可以开始一个虚拟活动(没有状态栏,没有标题栏,透明背景,所以看起来没有活动正在运行)。
  3. 在该活动中,覆盖onPause()方法以停止振铃或振动。所以当用户按下主页键时,它会被调用。 只是我的想法。可能有更好的想法。