将后台堆栈中的特定活动带到前台并清除顶部

时间:2016-07-13 11:33:25

标签: android android-activity activity-stack

我有混合应用程序,其中每个页面都加载到WebPageActivity(webView)中。我不想为每个屏幕创建一个新活动,而是为每个混合html页面创建多个相同活动的实例。

以下是要求,

导航堆栈:

A - > B - > D - > ë

这里堆栈中的所有活动都是WebPageActivity类型,每个实例都绘制不同的html。

当用户点击活动'E'上的某个按钮时,它应该将现有的'B'带到前景并清除顶部,从而产生以下堆栈,

A->乙

要点:

堆栈中的所有活动都是相同类型但具有不同的视图,并且需要返回到堆栈中的某些活动,并且顶部清晰。

可用数据:

  1. 每个活动都包含标识html文件名称的属性。
  2. 每当我想回到堆栈中的活动时,我就会知道该活动中将出现的html名称。

1 个答案:

答案 0 :(得分:1)

您应该使用片段而不是为了显示不同的html而创建相同活动的新实例。 Android的片段与您的用例完全相同。

此外,创建多个活动实例会增加应用程序的内存占用量。使用Fragments,您可以使用其唯一的片段标记(在将其添加到活动时指定)轻松地从Fragment后台堆栈中删除任何片段。

为了通过制作多个活动实例来实现它,请在活动实例' B'中使用标志 CLEAR_TOP 。这应该清除B之上的所有实例。

希望这有帮助