如何从特定活动返回主页活动而不覆盖后退按钮

时间:2013-04-01 18:14:49

标签: android user-interface

我是Android新手。这里我有活动A,B,C,D,其中A是家庭活动。它在堆栈中为A-> B-> C-> D

当我从B或C按回来时,它应该恢复正常。但是如果我从D按回来它应该回到A并且从A应用程序应该退出

2 个答案:

答案 0 :(得分:1)

我猜你可以拦截onStop()并猜测活动是否转换为C并启动A代替。但它会导致难以维持的混乱,我不建议这样做。

但是,如果由于某种原因你仍然不想覆盖onBackPressed而你设法猜测D因为按下后退而停止(没有覆盖onBackPressed(),只需从那里开始一个活动意图与FLAG_ACTIVITY_CLEAR_TOP(调用i.setFlags(FLAG_ACTIVITY_CLEAR_TOP))

根据文件:

  

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。

所以A将被带回来,B和C将被清除。

答案 1 :(得分:0)

当您开始新活动时,如果您想从B开始C,则完成旧活动:

Intent I = new Intent(B.this , C.class) ;
 startActivity (I);  
B.this.finish();