Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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 Lifecycle_Activity Stack - Fatal编程技术网

Android 从另一个活动恢复活动

Android 从另一个活动恢复活动,android,android-lifecycle,activity-stack,Android,Android Lifecycle,Activity Stack,我有“新游戏”和“恢复”按钮的菜单活动。“新游戏”启动Fireroom活动 public void newGame(View view){ Intent intent = new Intent(this, FireRoomActivity.class); this.finish(); startActivity(intent); } 在FireRoomActivity中,onBackPressed被覆盖以返回MenuActivity

我有“新游戏”和“恢复”按钮的菜单活动。“新游戏”启动Fireroom活动

public void newGame(View view){
        Intent intent = new Intent(this, FireRoomActivity.class);
        this.finish();  
        startActivity(intent);
    }
在FireRoomActivity中,onBackPressed被覆盖以返回MenuActivity

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent inMain=new Intent(this, MenuActivity.class);
    startActivity(inMain);
}
MenuActivity中的“resume”(恢复)按钮应恢复FireRoomActivity。但这只是退出应用程序

public void resume(View view){
    this.finish();
}
问题1)我做错了什么

问题2)如果我添加第三个活动“ThreeActivity”并从FireRoomActivity(finishing FireRoomActivity)开始,并且在这个“ThreeActivity”覆盖中返回到MenuActivity,我将如何进行

我对android的生命周期还不熟悉,因此我希望您能给出详细的回复,请尝试:

**Try This**
======================
public void onBackPressed() {
Intent i = new Intent(getApplicationContext(), MenuActivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(i);
            finish();
}
onBackPressed()本身完成活动。在这种情况下,如果您在FireRoomActivity中按下“后退”按钮,它将始终暂停。因此,如果要完成它,则需要调用finish()

试试看:

onBackPressed()本身完成活动。在这种情况下,如果您在FireRoomActivity中按下“后退”按钮,它将始终暂停。因此,如果要完成它,则需要调用finish()

试试看:

onBackPressed()本身完成活动。在这种情况下,如果您在FireRoomActivity中按下“后退”按钮,它将始终暂停。因此,如果要完成它,则需要调用finish()

试试看:


onBackPressed()本身完成活动。在这种情况下,如果您在FireRoomActivity中按下“后退”按钮,它将始终暂停。因此,如果要完成它,则需要调用finish()

在OnBackPressed重写方法中删除super.OnBackPressed()

如果不起作用,请尝试以下方法:

使用单击resume按钮的语法启动FireRoom活动

Intent i = new Intent(getActivity(), FireRoomActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
startActivity(i);

删除OnBackPressed重写方法中的
super.OnBackPressed()

如果不起作用,请尝试以下方法:

使用单击resume按钮的语法启动FireRoom活动

Intent i = new Intent(getActivity(), FireRoomActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
startActivity(i);

删除OnBackPressed重写方法中的
super.OnBackPressed()

如果不起作用,请尝试以下方法:

使用单击resume按钮的语法启动FireRoom活动

Intent i = new Intent(getActivity(), FireRoomActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
startActivity(i);

删除OnBackPressed重写方法中的
super.OnBackPressed()

如果不起作用,请尝试以下方法:

使用单击resume按钮的语法启动FireRoom活动

Intent i = new Intent(getActivity(), FireRoomActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
startActivity(i);
1) 你在扰乱自然秩序。在“新游戏”方法中不需要调用“finish”

只需将活动保留在堆栈上,以便在按back键时可以返回到它。然后,当按下后退键时,您不需要启动新的活动,因为您将返回到您已有的一个菜单活动

您的resume方法是调用finish,从而关闭菜单。不要“完成”菜单,而是输入代码继续游戏

2) 了解活动生命周期。一旦你明白了这一点,你会处理得更好。如果你打算重新开始一项活动,那么在开始另一项活动时,没有必要完成该活动。把它们想象成一堆。您将活动放在堆栈上,然后“后退”按钮会再次将它们弹出。只有当你完全完成了一项活动,再也不想看到它时,你才能完成它。

1)你在扰乱自然秩序。在“新游戏”方法中不需要调用“finish”

只需将活动保留在堆栈上,以便在按back键时可以返回到它。然后,当按下后退键时,您不需要启动新的活动,因为您将返回到您已有的一个菜单活动

您的resume方法是调用finish,从而关闭菜单。不要“完成”菜单,而是输入代码继续游戏

2) 了解活动生命周期。一旦你明白了这一点,你会处理得更好。如果你打算重新开始一项活动,那么在开始另一项活动时,没有必要完成该活动。把它们想象成一堆。您将活动放在堆栈上,然后“后退”按钮会再次将它们弹出。只有当你完全完成了一项活动,再也不想看到它时,你才能完成它。

1)你在扰乱自然秩序。在“新游戏”方法中不需要调用“finish”

只需将活动保留在堆栈上,以便在按back键时可以返回到它。然后,当按下后退键时,您不需要启动新的活动,因为您将返回到您已有的一个菜单活动

您的resume方法是调用finish,从而关闭菜单。不要“完成”菜单,而是输入代码继续游戏

2) 了解活动生命周期。一旦你明白了这一点,你会处理得更好。如果你打算重新开始一项活动,那么在开始另一项活动时,没有必要完成该活动。把它们想象成一堆。您将活动放在堆栈上,然后“后退”按钮会再次将它们弹出。只有当你完全完成了一项活动,再也不想看到它时,你才能完成它。

1)你在扰乱自然秩序。在“新游戏”方法中不需要调用“finish”

只需将活动保留在堆栈上,以便在按back键时可以返回到它。然后,当按下后退键时,您不需要启动新的活动,因为您将返回到您已有的一个菜单活动

您的resume方法是调用finish,从而关闭菜单。不要“完成”菜单,而是输入代码继续游戏

2) 了解活动生命周期。一旦你明白了这一点,你会处理得更好。如果你打算重新开始一项活动,那么在开始另一项活动时,没有必要完成该活动。把它们想象成一堆。您将活动放在堆栈上,然后“后退”按钮会再次将它们弹出。只有当你完全完成了一项活动,再也不想看到它时,你才能完成它。

Overide