2

根据 Android 文档,finish() 完全符合“后退”按钮的功能。所以基本上当我调用finish()时会调用onStop()。

我试图覆盖 onStateSaveInstance() 以保存当前状态,但它从未被调用。但是,如果我通过创建新 Intent 并使用 startActivity() 转到上一个活动,则会调用 onStateSaveInstance() 方法。这有什么原因吗?

4

1 回答 1

0

所以基本上当我调用finish()时会调用onStop()。

不必要。onStop()当您的活动不再可见时调用。仅当您调用 时活动可见时finish()才会触发调用。onStop()finish()

我试图覆盖 onStateSaveInstance() 以保存当前状态,但它从未被调用

正确的。你正在破坏活动。没有要保存的实例状态。

但是,如果我通过创建新 Intent 并使用 startActivity() 转到上一个活动,则会调用 onStateSaveInstance() 方法

不必要。它将取决于Intent标志、android:launchMode清单等。

这有什么原因吗?

onSaveInstanceState()当您的活动被销毁时不会被调用。没有要保存的实例状态,因为实例正在消失。

于 2017-09-06T15:01:15.530 回答