我在下面发布了一系列活动:
家庭活动 - >第二项活动 - >第3项活动 - >第四项活动
我想要实现的是当第3个活动启动第4个活动时,它会从后台清除活动2和3。因此,单击第4个活动将返回到主页活动
即。用户仍然可以从第3个活动返回到第2个活动,但是一旦启动第4个活动,活动2和3就会被删除。
实现此目的的配置是什么?
答案 0 :(得分:3)
听起来像是CLEAR_TOP。
试试这个:
Intent i = new Intent(this, HomeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
答案 1 :(得分:2)
您可以在BroadCastReceiver
实施中finish()
的第2和第3个活动中注册onReceive()
。
触发广播onlaunching 4th Activity。
如果它正常工作,将相同的Broadcast实现移动到BaseClass
并添加一个布尔检查来注册广播。
如果您使用的是片段,可以尝试
getFragmentManager().popBackStack("tag_of_fragment_to_pop", 0);
答案 2 :(得分:1)
我认为最简单的方法是使用这样的东西:
Intent homeActivityIntent = new Intent(fourth.this,
home.class);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(homeActivityIntent);
答案 3 :(得分:0)
虽然所有的答案都很有用,而且我只有2项活动需要关闭,但这就是我所做的:
startActivityForResult()
RESULT_OK
之前设置了finish()
。onActivityResult()
处理成功的结果,这样我就知道活动4已被推出,所以我可以完成活动2。因此,活动2和3都会在启动活动4时关闭。