管理Android中的活动并阻止大型活动堆栈

时间:2014-05-01 16:07:08

标签: android android-intent android-activity

我是Android开发的新手,我有一个包含各种活动的应用。出于性能原因,我希望在用户使用我的应用时正确管理活动。这是我的问题。

活动A - 使用地图开始活动

活动B - 用户从活动A导航到活动B(列表视图)。

然后,用户选择地图图标再次导航到活动A.

所以,如果你能想象它,我的活动堆栈现在是:

  1. 活动A
  2. 活动B
  3. 活动A
  4. 因此,如果我按下设备的后退按钮,它会在滚动活动时永远占用。

    有没有办法管理这个,以便旧的活动被销毁,只是在选择活动导航图标时重新创建。我已经了解了onDestroy()onStop(),但我对它们的实施感到有些困惑。

    对措辞不佳的问题道歉,但我不确定要求有关活动的正确词典。

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案是在活动离开前景后立即将其杀死。

您可以通过在finish()内调用onPause()来完成此操作。

答案 1 :(得分:0)

你可以让B完成自己并返回A而不是开始另一个A.或者,如果你的堆栈可能更复杂,就像这样:

D
C
B
A

D可以用FLAG_ACTIVITY_CLEAR_TOP启动A,这将导致D,C和B完成,将A留在顶部。 (该意图标志非直观地与其他几个标志进行交互,因此请阅读文档。)