如何在程序暂停时设置监听器(用户离开应用程序)?

时间:2016-05-31 15:16:11

标签: android

我有一个游戏应用程序,当用户按下“返回”,“主页”,“菜单”或“电源”按钮时,我想暂停游戏。 我尝试了下面的代码,但只有后退按钮工作。其他人甚至不显示Toast消息。我不知道为什么。有任何代码问题吗?如果没有,有更好的方法吗?

public boolean onKeyDown(int keycode, KeyEvent e) {
    switch(keycode) {
        case KeyEvent.KEYCODE_HOME:
            pause(null);
            Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show();
            return true;
        case KeyEvent.KEYCODE_MENU:
            pause(null);
            Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show();
            return true;
        case KeyEvent.KEYCODE_BACK:
            pause(null);
            Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show();
            return true;
        case KeyEvent.KEYCODE_POWER:
            pause(null);
            Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show();
            return true;
    }
    return super.onKeyDown(keycode, e);
}

}

1 个答案:

答案 0 :(得分:0)

只需将您的代码放入活动的onPause方法暂停游戏(在Android工作室中,您可以点击CTRL+O以获取覆盖方法菜单,然后开始输入 onPau 并选择方法):

@Override
public void onPause() {
    super.onPause();
    pause(null);
    Toast.makeText(this,"Hello World",Toast.LENGTH_LONG).show();
}

现在,如果你的无论什么原因的活动失焦(在其上打开了其他内容,例如打开whatsapp来回复消息),它就会暂停。我建议你阅读更多here