当我按下后退按钮时,onStop()没有被调用

jax*_*jax 7 android

这是正常的吗?

文档说

"可以多次调用onStart()和onStop()方法,因为活动在对用户可见和隐藏之间交替"

当我按下后退按钮时,它将返回上一个完全覆盖旧活动的活动.

这里发生了什么?

小智 7

onStop()每次活动不再可见时调用.因此,当按下后退按钮时onStop()实际上被调用.

轻松检查, - 需要在onStop()/onStart()回调中放置断点并运行调试会话.

但请注意,onStop()当前活动很可能会onStart()/onResume()在您要切换的活动之后调用.

因此,我认为您正在尝试更新onStop()1st Activity中的某些内容,并期望获取onStart()第二个Activity 中的更新数据,从而导致错误.


QRo*_*hlf -7

您需要 onPause(),而不是 onStop()。onStop 在 Activity 被销毁之前、系统内存不足时调用。每当用户离开您的 Activity 时,就会调用 onPause。请参阅http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle中的图表。

  • 谢谢,在图中它说“活动不再可见”,然后 onStop() 发生,那么“不再可见”是什么意思呢?我本以为去参加活动就意味着不再可见。 (6认同)