android - 如何在按下“电源按钮”后运行一些代码

时间:2016-07-18 08:29:32

标签: java android android-studio

我有一个应用程序在应用程序打开时播放一些音乐文件,但是当我按下电源按钮时,声音因某些原因而继续播放。有没有办法覆盖电源按钮,这样它也会在推动时停止媒体播放器?

MediaPlayer mp;

protected void onCreate(Bundle savedInstanceState) {
...
...
mp = MediaPlayer.create(this, mAudio[0]);
mp.start();
...
...
}

我想在按下电源按钮时拨打mp.stop()

3 个答案:

答案 0 :(得分:1)

覆盖onKeyDown并检查它是否为KEYCODE_POWER

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // Stop the media player here
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:0)

添加此方法:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // stop the media from playing
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

按下某个键时,此方法正在激活。它检查按下了什么键并对其做出反应。

答案 2 :(得分:0)

首先,当你想暂停或停止声音时,你需要了解。如果您想这样做,当您退出/隐藏某个应用程序时,覆盖onKeyDown将无法提供帮助。我认为在这种情况下更好的方法是:

protected void onCreate(Bundle onSaveInstanceState) {
    super.onCreate(onSaveInstanceState);
    mp = MediaPlayer.create(this, mAudio[0]);
}

protected void onStart() {
    super.onStart();
    mp.start();
}

protected void onStop() {
    super.onStop();
    mp.stop();
}

但是如果你只想在按下电源按钮时停止声音,那么是的,你需要覆盖onKeyDown