在Android中设置root活动/意图

时间:2010-10-14 17:47:36

标签: android android-activity android-intent

我正在使用Intent在不同的活动之间切换。对于一个Activity,我希望它清除历史堆栈,因此当用户按下后退按钮时,它会将它们作为Home而不是我应用程序中的先前活动。

2 个答案:

答案 0 :(得分:6)

我必须为我的项目实现同样的事情。我最终做的是替换:   startActivity(ⅰ); with startActivityForResult(i,UniqueId);在我希望成为“历史堆栈”一部分的所有活动中。

然后实施:

setResult(UniqueId);
finish();

在我想要关闭孩子并返回“home / root”的子活动中。

在父活动中,我实施了:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == UniqueId && resultCode == UniqueId) {
 setResult(UniqueId);
 finish();
}
super.onActivityResult(requestCode, resultCode, data);
}

这实际上意味着如果子活动发送了“home / root”结果(由UniqueId表示),该子活动的所有父母都使用了“startActivityForResult(i,UniqueId);”也会关闭。

希望有道理吗?

答案 1 :(得分:1)

您可以尝试拨打finish()来调用startActivity时不想留下的活动吗?

或者,较少的Android解决方案,在您的活动中听取onBackPressed(),然后在设置了startActivity()标记的主活动上调用CLEAR_STACK