Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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/3/xpath/2.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
Android 点击主页按钮后暂停游戏_Android_Android Activity_Android Lifecycle - Fatal编程技术网

Android 点击主页按钮后暂停游戏

Android 点击主页按钮后暂停游戏,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,您好,单击“暂停”按钮或“后退”按钮后,会出现一个暂停菜单。现在我希望它会出现在我点击主页按钮后。 我试图将PauseFunction设置为onPause函数,但当我返回应用程序时,它正在重新启动活动。 我甚至尝试将暂停功能放在桌面功能上,但应用程序崩溃了 我的暂停功能: private void ShowPauseMenu(){ DialogFragment newFragment = new PauseMenuDialogFragment(); newFragment.sho

您好,单击“暂停”按钮或“后退”按钮后,会出现一个暂停菜单。现在我希望它会出现在我点击主页按钮后。 我试图将PauseFunction设置为onPause函数,但当我返回应用程序时,它正在重新启动活动。 我甚至尝试将暂停功能放在桌面功能上,但应用程序崩溃了

我的暂停功能:

private void ShowPauseMenu(){
    DialogFragment newFragment = new PauseMenuDialogFragment();
    newFragment.show(getFragmentManager(), "Pause");
}

如何解决此问题?

您需要覆盖应用程序中的主页按钮行为

使用以下示例:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        //Call the pause function                     
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

据我所知,如果您正确处理
onResume()
回调,您的用例应该不会有问题。我的意思是确保你在恢复时覆盖
onResume
,然后做任何你想做的事情:恢复游戏,等等

我认为
onResume
中有一些代码正在重新启动应用程序

编辑:
你的应用程序在
onStop()
中崩溃,因为FragmentManager不再可用。完成任务后,尝试调用super.onStop()。

它仍然不工作,当我返回应用程序时,活动正在重新启动。你确定它是
真的
而不是
假的
?我只是好奇,因为我从来都不知道在这个方法中哪个是什么意思。这应该是真的。你正在保存应用程序状态吗?我不这么认为,如何保存它们?还有另一个功能可用于覆盖活动。保存所需的数据和值。onSaveInstanceState(束超出状态)。在onCreate中,检查savedInstance是否不为null,然后分配所需的值。我考虑过这一点,但是如果我将函数添加到onResume()函数中,即使在刚刚创建活动时(第一次启动时),也会出现暂停菜单。我想onStop函数会重新启动活动。但对此不确定。