繁体   English   中英

“后退”按钮转到父活动,而不是转到电话主屏幕

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM