Android堆栈中的最大活动实例数

时间:2016-09-08 23:32:04

标签: java android android-activity

我似乎无法找到在应用程序中设置单个活动的最大实例数的任何方法。基本上,如果它的最大值为2,我希望它看起来像是:

A - > B - >乙

如果用户尝试启动另一个相同的活动,它会替换最近的“B”,但只留下第一个。但是,如果只有一个'B',那么只需创建第二个'B'。只有当有两个'B'活动才开始取代'B'。

有很多选项可以确保只有1个活动,例如clear top和reorder front,但这似乎不可能。有人试过吗?

1 个答案:

答案 0 :(得分:0)

通常,创建Activity的多个实例非常难以管理,因为您无法使用任何Activity标记来寻址或返回Intent的任何特定实例。我不了解您的应用或您的要求,但您应该考虑重新架构,使用以下其中一个想法:

  • 不要创建任何活动的多个实例。每次都使用Intent.FLAG_REORDER_TO_FRONT重用现有实例。
  • 不要从B启动B,只需重复使用同一个B实例,只需更改其中的数据,就会产生错误,即您正在创建新的Activity (动画过渡或其他)
  • 创建Activity(扩展现有类的新类)的副本,然后启动它,这样就不会有B的2个实例,而是B的一个实例和CopyB
  • 的一个实例