【问题标题】:return back and skip one activity android onbackpressed返回并跳过一项活动 android onbackpressed
【发布时间】:2014-01-07 00:55:58
【问题描述】:
这是我的情况
假设我有这些活动
A -> B -> C -> D
当用户在 D 中单击后退按钮时,我想回到 A
但我也想在用户点击 C 的后退按钮时回到 B
当我从 B 到 C 时,我想调用完成,但是在这种情况下,如果我单击 C 的背面,我将无法返回到 B
如何在不针对两个活动调用 onBackPressed 的情况下解决此问题?
谢谢
【问题讨论】:
标签:
android
android-activity
return
back
activity-finish
【解决方案1】:
当您开始每个活动时,您将需要使用
startActivityForResult()
然后有一个标志系统,说明谁被阻止,哪些被传回。所以,活动 D:
timeToEnd() {
setResult(RESULT_D_CLOSING);
finish();
}
然后在 A、C、D 中
onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode)
case RESULT_D_CLOSING:
// Close on upwards
setResult(RESULT_D_CLOSING);
finish();
case ....
// You get the idea
}
}
【解决方案3】:
这里有 2 个选项。您可以使用startActivityForResult 启动活动,然后每个活动的onBackPressed 传递一个标志,告诉活动退出保持打开状态。
另一种选择是将 A、B、C、D 实现为同一活动中的片段,在您打开它们时将所有片段放在后台堆栈中,然后 onBackPress 您可以以编程方式循环遍历后台堆栈以查看您的内容想做。