0

我是安卓新手。在这里,我有活动 A、B、C、D,其中 A 是 Home Activity。它在堆栈中为 A->B->C->D

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

4

2 回答 2

1

我想您可以拦截 onStop() 并猜测活动是否正在切换到 C 并启动 A。但这会导致难以维护的混乱,我不建议这样做。

但是,如果由于某种原因您仍然不想覆盖onBackPressed并且您设法猜测 D 正在停止,因为按下了 back (没有覆盖onBackPressed(),只需从那里启动一个带有 FLAG_ACTIVITY_CLEAR_TOP 的 Intent 的活动调用 i.setFlags(FLAG_ACTIVITY_CLEAR_TOP) )

根据文档:

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

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

于 2013-04-01T18:21:05.640 回答
0

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

Intent I = new Intent(B.this , C.class) ;
 startActivity (I);  
B.this.finish();
于 2013-04-01T18:20:38.343 回答