我是安卓新手。在这里,我有活动 A、B、C、D,其中 A 是 Home Activity。它在堆栈中为 A->B->C->D
当我从 B 或 C 按下返回时,它应该正常返回。但是,如果我从 D 回按它应该回到 A 并且从 A 应用程序应该退出
我是安卓新手。在这里,我有活动 A、B、C、D,其中 A 是 Home Activity。它在堆栈中为 A->B->C->D
当我从 B 或 C 按下返回时,它应该正常返回。但是,如果我从 D 回按它应该回到 A 并且从 A 应用程序应该退出
我想您可以拦截 onStop() 并猜测活动是否正在切换到 C 并启动 A。但这会导致难以维护的混乱,我不建议这样做。
但是,如果由于某种原因您仍然不想覆盖onBackPressed
并且您设法猜测 D 正在停止,因为按下了 back (没有覆盖onBackPressed()
,只需从那里启动一个带有 FLAG_ACTIVITY_CLEAR_TOP 的 Intent 的活动(调用 i.setFlags(FLAG_ACTIVITY_CLEAR_TOP) )
根据文档:
如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。
所以A将被带回,B和C将被清除。
当您开始新活动时,请完成旧活动,例如,如果您想从 B 开始 C :
Intent I = new Intent(B.this , C.class) ;
startActivity (I);
B.this.finish();