2010-12-15 69 views
0

任何人都可以告诉我是否有任何方法将当前活动添加到活动堆栈(活动历史记录)。我有情况如下:如何将当前活动添加到活动堆栈

  1. 用户开始新的活动 - A(我不希望把堆栈)
  2. 用户开始从
  3. 用户新的活动(B)按下BACK按钮从乙
  4. B的走了,但是当用户启动活动B A也

走了,我想保持在历史上能够搬回与BACK按钮。

我唯一想到的是在onKeyDown()方法中从B开始新的活动A.但也许有更好的方法?

+0

如果你要刷新你的活动“A”时,从B处叫然后使用onActivityResult刷新 – Eby 2010-12-15 13:03:07

回答

0

集机器人:clearTaskOnLaunch在根系活力=“真”(manifest文件)

还,除非你想阻止的B将A(当用户按下返回键),你应该放下“没有历史”的标志

文档:

如果这个属性在任务中的根系活力设置为“真”,堆栈被清除下来,每当用户离开任务并返回到根系活力它。换句话说,这是alwaysRetainTaskState的极性。用户总是返回到其初始状态的任务,即使一时没有

http://developer.android.com/guide/topics/fundamentals.html#clearstack http://developer.android.com/guide/topics/manifest/activity-element.html#clear

+0

如果该方法有效,那将会很棒。问题在于它不是。在其他问题有人告诉说,HOME按钮没有完成根活动,因此无法重新启动。 – Seraphis 2010-12-15 14:08:07

+0

也许我补充说,活动A是从我的小部件开始的。不知道它是否改变了任何事情 – Seraphis 2010-12-15 14:26:30

+0

已经在Activity A *上启动时设置了明确的任务并且*删除了没有历史标志?那是怎么回事? – 2010-12-15 15:47:12

1

如果你没有当用户启动活动B将在那里当用户完成活动B.

+0

如果我开始标志Intent.Activity_flag_no_history的活动A,那么它不会。那就是问题所在。 – Seraphis 2010-12-15 12:52:44

1

这实际上是在应用程序的生命周期中正常发生了什么叫发生的活性完成()。如果您在A中没有拨打finish(),则应用程序将在B完成时返回到A.

+0

正如我在评论中写道:它不会与国旗no_history ... – Seraphis 2010-12-15 12:53:44

+1

为什么你必须使用这个标志,如果你想回到你的应用程序?请再说明一下为什么你必须放上这面旗帜,这将有助于我们回答你。 – 2010-12-15 12:54:40

+0

因为我想要防止出现如下情况:用户开始活动A - >用户从A开始活动B - >用户按下HOME按钮 - >用户开始活动A,但它直接移动到B – Seraphis 2010-12-15 12:59:19