根据 Android 文档,finish() 完全符合“后退”按钮的功能。所以基本上当我调用finish()时会调用onStop()。
我试图覆盖 onStateSaveInstance() 以保存当前状态,但它从未被调用。但是,如果我通过创建新 Intent 并使用 startActivity() 转到上一个活动,则会调用 onStateSaveInstance() 方法。这有什么原因吗?
根据 Android 文档,finish() 完全符合“后退”按钮的功能。所以基本上当我调用finish()时会调用onStop()。
我试图覆盖 onStateSaveInstance() 以保存当前状态,但它从未被调用。但是,如果我通过创建新 Intent 并使用 startActivity() 转到上一个活动,则会调用 onStateSaveInstance() 方法。这有什么原因吗?
所以基本上当我调用finish()时会调用onStop()。
不必要。onStop()
当您的活动不再可见时调用。仅当您调用 时活动可见时finish()
才会触发调用。onStop()
finish()
我试图覆盖 onStateSaveInstance() 以保存当前状态,但它从未被调用
正确的。你正在破坏活动。没有要保存的实例状态。
但是,如果我通过创建新 Intent 并使用 startActivity() 转到上一个活动,则会调用 onStateSaveInstance() 方法
不必要。它将取决于Intent
标志、android:launchMode
清单等。
这有什么原因吗?
onSaveInstanceState()
当您的活动被销毁时不会被调用。没有要保存的实例状态,因为实例正在消失。