调用finish() 时活动被销毁后会发生什么?

时间:2021-05-30 06:31:16

标签: android android-activity android-lifecycle

我在 android What is Activity.finish() method doing exactly? 中看到了关于 finish() 关键字的这篇文章

..但它找不到任何可以回答我的问题的内容。

如果在一个活动上调用finish(),是否会调用堆栈中的下一个活动?如果我们为另一个活动的结果启动该活动会怎样?是否会调用该其他活动的 onActivityResult() 而不是堆栈中的下一个活动?什么比另一个优先?关于这些问题,我真的找不到太多东西。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您从 ActivityA 启动 ActivityB 并且如果您从 ActivityB 调用 finish() ,则 ActivityB 将从堆栈中删除,ActivityA 将位于堆栈顶部。

如果你从 ActivityA 的 onActivityResult() 启动 ActivityB,当你再次完成 ActivityB 时,ActivityA 将在栈顶。

onActivityResult() 不会被调用,因为 onActivityResult() 在 just 方法中属于 ActivityA 。所以堆栈就是关于活动堆栈。