启动新的 activity 并清除除主页 activity 之外的先前活动
Launch new activity and clear previous activities except home activity
下面有一系列 activity 启动:
主页Activity -> 第 2 Activity -> 第 3 Activity -> 第 4 Activity
我想要实现的是,当第 3 个 activity 启动第 4 个 activity 时,它从后台清除活动 2 和 3。于是,点击返回4号activityreturns回到首页activity
即用户应该仍然可以从第 3 个 activity 返回到第 2 个,但是一旦第 4 个 activity 启动,活动 2 和 3 将被删除。
实现这个的配置是什么?
我认为最简单的方法是使用这样的东西:
Intent homeActivityIntent = new Intent(fourth.this,
home.class);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(homeActivityIntent);
听起来你想要 CLEAR_TOP。
试试这个:
Intent i = new Intent(this, HomeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
您可以在第 2 和第 3 个 Activity 中注册 BroadCastReceiver
,其 onReceive()
实现中有 finish()
。
在第 4 次启动时触发广播 Activity。
如果它工作正常,将相同的广播实现移动到 BaseClass
并添加布尔检查以注册广播。
如果您正在使用片段,您可以尝试
getFragmentManager().popBackStack("tag_of_fragment_to_pop", 0);
虽然所有答案都很有用,而且我只有 2 个活动想结束,但我还是这样做了:
startActivityForResult()
在 Activity 2
- 在 Activity 3 上成功启动 Activity 4 我在 Activity 上调用
finish()
之前设置了 RESULT_OK
3.
- 在 Activity 2 上,我在
onActivityResult()
上处理成功的结果,这样我就知道 Activity 4 已经启动,所以我可以完成 Activity 2.
因此 Activity 2 和 3 在 activity 4 启动时关闭。
下面有一系列 activity 启动:
主页Activity -> 第 2 Activity -> 第 3 Activity -> 第 4 Activity
我想要实现的是,当第 3 个 activity 启动第 4 个 activity 时,它从后台清除活动 2 和 3。于是,点击返回4号activityreturns回到首页activity
即用户应该仍然可以从第 3 个 activity 返回到第 2 个,但是一旦第 4 个 activity 启动,活动 2 和 3 将被删除。
实现这个的配置是什么?
我认为最简单的方法是使用这样的东西:
Intent homeActivityIntent = new Intent(fourth.this,
home.class);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(homeActivityIntent);
听起来你想要 CLEAR_TOP。
试试这个:
Intent i = new Intent(this, HomeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
您可以在第 2 和第 3 个 Activity 中注册 BroadCastReceiver
,其 onReceive()
实现中有 finish()
。
在第 4 次启动时触发广播 Activity。
如果它工作正常,将相同的广播实现移动到 BaseClass
并添加布尔检查以注册广播。
如果您正在使用片段,您可以尝试
getFragmentManager().popBackStack("tag_of_fragment_to_pop", 0);
虽然所有答案都很有用,而且我只有 2 个活动想结束,但我还是这样做了:
startActivityForResult()
在 Activity 2- 在 Activity 3 上成功启动 Activity 4 我在 Activity 上调用
finish()
之前设置了RESULT_OK
3. - 在 Activity 2 上,我在
onActivityResult()
上处理成功的结果,这样我就知道 Activity 4 已经启动,所以我可以完成 Activity 2.
因此 Activity 2 和 3 在 activity 4 启动时关闭。