Android-activity 中的完成功能无效
Android-finish function in activity didn't work
我从 MainActivity 扩展了 activity A、B、C。
A先开始,A开始B,B开始C。
当我在 activity C 中的 onclick 特殊按钮中使用 finish() 时,Activity A 开始,但我想要 activity B 开始。
我为这个案子做什么?
当 Activity C 完成时,您不能可靠地期望 Activity B 在堆栈上,因为 Android 可以破坏背景 Activity 如果它需要内存。如果您的用例建议 Activity B 应该在 Activity C 关闭时始终可见,您应该明确地启动它,如 Navigating Up to Parent Activity 中所述。在你的情况下,我认为在 onBackPressed()
.
中使用 NavUtils.navigateUpFromSameTask(this)
是合适的
AActivity.java
Intent i = new Intent(this,BActivity.class);
startActivity(i);
BActivity.java
Intent i = new Intent(this,CActivity.class);
startActivity(i);
CActivity.java
Intent i = new Intent(this,BActivity.class);
startActivity(i);
finish();
开始所有 activity 如下所示:
Intent i = new Intent(this,NewActivity.class);
startActivity(i);
不要添加 finish() 方法,然后在按钮内单击只需调用 finish() 方法。它会让你回到之前的 activity.
我从 MainActivity 扩展了 activity A、B、C。 A先开始,A开始B,B开始C。 当我在 activity C 中的 onclick 特殊按钮中使用 finish() 时,Activity A 开始,但我想要 activity B 开始。 我为这个案子做什么?
当 Activity C 完成时,您不能可靠地期望 Activity B 在堆栈上,因为 Android 可以破坏背景 Activity 如果它需要内存。如果您的用例建议 Activity B 应该在 Activity C 关闭时始终可见,您应该明确地启动它,如 Navigating Up to Parent Activity 中所述。在你的情况下,我认为在 onBackPressed()
.
NavUtils.navigateUpFromSameTask(this)
是合适的
AActivity.java
Intent i = new Intent(this,BActivity.class);
startActivity(i);
BActivity.java
Intent i = new Intent(this,CActivity.class);
startActivity(i);
CActivity.java
Intent i = new Intent(this,BActivity.class);
startActivity(i);
finish();
开始所有 activity 如下所示:
Intent i = new Intent(this,NewActivity.class);
startActivity(i);
不要添加 finish() 方法,然后在按钮内单击只需调用 finish() 方法。它会让你回到之前的 activity.