活动中的Android-finish功能不起作用

问题描述 投票:1回答:3

我从MainActivity扩展活动A,B,C。首先开始,A开始B和B开始C.当我在活动C中使用onclick特殊按钮中的finish()时,活动A开始,但我想要活动B开始。我为这个案子做了什么?

android android-activity activity-finish
3个回答
5
投票

开始以下所有活动:

Intent i = new Intent(this,NewActivity.class);

startActivity(i);

不要添加finish()方法,然后在按钮内单击只调用finish()方法。它会带你回到之前的活动。


1
投票

当Activity C完成时,你无法可靠地期望活动B在堆栈上,因为Android可以在需要内存时销毁后台Activity。如果您的用例表明,当活动C关闭时,活动B应始终可见,您应该明确地启动它,如Navigating Up to Parent Activity中所述。在你的情况下,我认为在NavUtils.navigateUpFromSameTask(this)中使用onBackPressed()是合适的。


0
投票

A activity.Java

Intent i = new Intent(this,BActivity.class);
startActivity(i);

B activity.Java

Intent i = new Intent(this,CActivity.class);
startActivity(i);

C activity.Java

Intent i = new Intent(this,BActivity.class);
startActivity(i);
finish();
© www.soinside.com 2019 - 2024. All rights reserved.