活动中的Android-finish功能无效

时间:2017-02-22 18:36:39

标签: android android-activity activity-finish

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

3 个答案:

答案 0 :(得分:5)

开始以下所有活动:

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

startActivity(i);

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

  

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();