我用意图在不同的活动之间切换。对于一个活动,我希望它清除历史堆栈,因此当用户按下后退按钮时,它会将它们带回家,而不是应用程序中以前的活动。

最佳答案

我必须为我的项目实现同样的事情。我最终做的是替换:
startactivity(i);带有startactivityforresult(i,uniqueid);在所有活动中,我都想成为“历史堆栈”的一部分。
然后实施:

setResult(UniqueId);
finish();

在child活动中,当我想关闭孩子并返回“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);”的子活动的所有父级也将关闭。
希望这有意义?

关于android - 在Android中设置root Activity/Intent ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3935997/

10-09 01:33