2012-04-26 95 views
2

我想重写我的应用程序中后退按钮的默认行为,以便它会导致显示一个特定的活动(应用程序启动时加载的活动)而不是先前的活动在堆栈上。有什么好办法做到这一点?覆盖后退按钮默认活动堆栈操作

+0

当你从一个跳转到另一个活动时完成所有活动。 不要完成FirstActivity。 您只能这样做。 如果你这样做,你不需要维护任何其他onBackPressed()事件等.... – 2012-04-26 06:12:42

回答

3

finish() all the intermediate Acitivities

你也可以当您使用意图进入下一个活动简单地调用完成()之后使用Intent.FLAG_ACTIVITY_CLEAR_TOP

@Override 
public void onBackPressed() 
{ 
Intent mIntent= new Intent(mContext, mainFirst.class) 
    startActivity(mIntent); 
    mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    finish(); 
} 
0
@Override 
public void onBackPressed() 
{ 
    startActivity(new Intent(mContext, FirstActivity.class)); 
    finish(); 
} 
1

。 例如 活动-1,2,3。 你的流量是从1-> 2-> 3

所以,当你打电话给意图从2到3 刚刚完成()活动2后,意图。 所以你回到1时,你回来按。

另一种选择是

@override onBackPressed 

意图活动1. 但你会必须使用相应的标志

3
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); 
myIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    CurrentActivity.this.startActivity(myIntent); 

NextActivity是确保你只有实例1 1你的主人