调用Activity.finish()但活动仍然在内存中加载

时间:2011-01-04 15:01:19

标签: android android-activity android-lifecycle

当我在调试器上运行我的应用程序时,我得到主线程和3个绑定线程。

在按钮上单击我调用 Activity.finish(),看起来它在UI关闭后结束活动并返回主屏幕。

但是,在调试器中,它仍然将主线程和3个绑定线程显示为“(运行)”。

我很困惑为什么会这样。更重要的是,当我退出应用程序后再次运行时,它会导致我的应用程序调用 Activity.onResume()

我目前在Activity中覆盖了这些方法,但我在每个方法中都调用了相应的超级函数:

  • 的onDestroy()
  • 的onPause()
  • 的onResume()
  • 的onSaveInstanceState()

非常感谢有关此方面的任何帮助或建议!

1 个答案:

答案 0 :(得分:22)

当你的应用程序离开主内存时,你无法控制操作系统。仔细查看Activity.finish ...

  

在您的活动完成后调用此方法   并应该关闭。该   ActivityResult被传播回   谁通过你发起你   onActivityResult()。

请注意,对内存一无所知。至于调用Activity.onResume,这正是你对生命周期的期望;请记住onResume不仅仅是在简历之后调用,而是在onCreate之后首次启动应用程序。

虽然不完全是你问我建议你阅读this article about exit buttons继续说一些非常重要的事情

  

[Activity.finish]完全等同于点击后退按钮。