android:noHistory没有完成

时间:2018-03-12 21:29:26

标签: android android-intent android-activity android-manifest android-lifecycle

我有一个曾经的活动A:

private void launchActivityBAndFinish() {
  Intent activityB = makeActivityBIntent();
  startActivity(activityB);
  finish();
}

这并不好,因为ActivityB需要一些时间来启动(它也可能在另一个进程或其他应用程序中)。因此,在写入时,它会在ActivityA立即消失和ActivityB启动之间留下视觉差距。期望的行为是继续显示ActivityA(加载微调器),直到ActivityB实际可见。

所以我更改了它以将android:noHistory添加到ActivityA清单并删除finish()调用。它按预期工作(ActivityB在ActivityA之上顺利显示,后者从历史中消失)。除了在启动后立即快速解除ActivityB(通过调用finish()的完全可见的ActivityB UI上的[X])时,它实际上不起作用。

所以我的问题是:

1)android:noHistory何时精确触发finish()? Docs说当ActivityA不再可见时,但根据描述的异常情况似乎并非如此。

2)实现我想要的UI行为的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

在这种情况下,ActivityB是半透明的,因此android:noHistory没有关闭ActivityA。