活动中的Android finish函数';行不通
我从MainActivity扩展了activity A、B、C。 A先起动,A起动B和B起动C。 当我在活动C的onclick特殊按钮中使用finish()时,活动A是开始,但我希望活动B开始。活动中的Android finish函数';行不通,android,android-activity,activity-finish,Android,Android Activity,Activity Finish,我从MainActivity扩展了activity A、B、C。 A先起动,A起动B和B起动C。 当我在活动C的onclick特殊按钮中使用finish()时,活动A是开始,但我希望活动B开始。 我该怎么办 当活动C完成时,您不能可靠地期望活动B在堆栈上,因为如果后台活动需要内存,Android可以销毁它。如果您的用例建议在活动C关闭时活动B应该始终可见,那么您应该明确地启动它,如中所述。在您的情况下,我认为在onBackPressed()中使用NavUtils.navigateUpFromSa
我该怎么办 当活动C完成时,您不能可靠地期望活动B在堆栈上,因为如果后台活动需要内存,Android可以销毁它。如果您的用例建议在活动C关闭时活动B应该始终可见,那么您应该明确地启动它,如中所述。在您的情况下,我认为在
onBackPressed()
中使用NavUtils.navigateUpFromSameTask(this)
是合适的
aaActivity.java
BActivity.java
CActivity.java
启动所有活动,如下所示:
Intent i = new Intent(this,NewActivity.class);
startActivity(i);
不要添加finish()方法,然后在按钮内部单击callfinish()方法。它将使您回到上一个活动。检查您正在使用的意图过滤器,并检查与之关联的AndroidManifest中的noHistory xml属性activities@Shubham我没有使用noHistory,我检查它在这段代码中B可能从A和其他活动开始,没有固定的父项您必须为C指定父项,不适用于B。我忘了说C活动开始D活动,在C和D中,当我使用finish函数时,一个活动开始。这个想法是,当下一个活动完成时,您不应该期望任何前一个活动保留在任务中。在设计应用程序时要考虑到这一点。
Intent i = new Intent(this,CActivity.class);
startActivity(i);
Intent i = new Intent(this,BActivity.class);
startActivity(i);
finish();
Intent i = new Intent(this,NewActivity.class);
startActivity(i);