1

我有 2 个活动(A 和 B),它们有 2 个按钮可以在它们之间切换。

  1. 一个 oncreate
  2. B oncreate
  3. 一个 oncreate
  4. 一份简历

我想做的是在将意图从 B 发送到 A 之后,不应调用 oncreate,但此时它确实如此。为了克服这个问题,我找到了 FLAG_ACTIVITY_REORDER_TO_FRONT (从这里)并认为它只能调用 onresume 但它没有。

4

3 回答 3

3

FLAG_ACTIVITY_REORDER_TO_FRONT does exactly what you think it should do. However, if you start ActivityA and then ActivityA starts ActivityB and calls finish() on itself, then when ActivityB starts ActivityA with an Intent that has FLAG_ACTIVITY_REORDER_TO_FRONT there will be no instance of ActivityA to bring to the front. In this case Android will simply create a new one. I can only assume that is what you are seeing.

于 2013-03-05T15:43:46.990 回答
0

FLAG_ACTIVITY_REORDER_TO_FRONT更改活动历史记录。如果在先前访问过的活动(在任务中)的历史记录中找到所请求的活动,则清除此活动的较旧历史记录。因此,在按下后退按钮时,用户不会在任务中遇到此活动。

此标志不会影响对 的调用onCreate(),如果任务中不存在活动(未加载或销毁),onCreate()将调用创建它。

于 2013-03-05T13:03:07.430 回答
0

您不能只取消 onCreate。如果 B 是全屏活动,android 可以杀死 A 活动,并在您尝试使用 FLAG_ACTIVITY_REORDER_TO_FRONT 标志重新启动它并调用它的 onCreate 方法时重新创建它。如果 Activity A 在您尝试将其置于最前面时仍然处于活动状态,则不应调用 onCreate 方法。

也许在你的情况下你应该尝试使用片段?

于 2013-03-05T13:03:10.103 回答