[英]Back button goes to the parent activity instead going to the phone home screen
我有两个活动,A yB。A是B的父活动。
使用以下代码初始化第二个:
Intent intent = new Intent( this, B.class );
startActivity( intent );
this.finish();
B使用以下代码返回A(如注销):
Intent intent = new Intent( B.this, A.class );
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
startActivity( intent );
给您更多上下文,该应用程序具有一个滑动菜单,每个列表项在ListView中显示一个ListFragment。 在这些视图中的每个视图上,都清洁了后盖,其想法是用户按下后退按钮时,应按Google文档所述进入电话主屏幕,以及当用户从电话主屏幕按应用程序图标时,它需要重新初始化用户的工作位置。
该应用程序当前正在执行的操作将进入手机主屏幕,但是当您按一下该应用程序图标时,它将再次从活动A(启动和主要活动)开始。
知道为什么吗?
尝试在startActivity()
finish()
之后添加。 这将使provius活动能够安全地自行关闭。
您使用此代码转到手机主屏幕
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
覆盖onBackPressed
并编写上面的代码。 它应该工作。
据我了解,您有2个活动A和B。
您正在启动活动A并移至活动B,同时调用A.this.finish()
这意味着堆栈中只有1个活动,即活动B。
而且,当您按下“返回”按钮时,这意味着它关闭了您的应用程序,从而从堆栈中删除了剩余的Activity B,因此您的堆栈为空。 因此,您需要按下设备的“居中”按钮,这将使应用程序活动B处于后台(处于onStop()状态),而当您再次启动应用程序时,它将仅打开活动B(通过调用onRestart())。
我希望以上解释足以理解以上问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.