Android 从另一个活动恢复活动
我有“新游戏”和“恢复”按钮的菜单活动。“新游戏”启动Fireroom活动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
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