我有一个曾经的活动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行为的正确方法是什么?
谢谢!
答案 0 :(得分:0)
在这种情况下,ActivityB是半透明的,因此android:noHistory没有关闭ActivityA。