我是Android新手。这里我有活动A,B,C,D,其中A是家庭活动。它在堆栈中为A-> B-> C-> D
当我从B或C按回来时,它应该恢复正常。但是如果我从D按回来它应该回到A并且从A应用程序应该退出
答案 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();