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

twi*_*wig 11 android android-lifecycle android-activity

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

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

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

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

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

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

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

And*_*ite 21

操作系统不会控制您的应用程序何时离开主内存.仔细看看Activity.finish ......

在您的活动完成后调用此选项并应关闭.ActivityResult会传播回通过onActivityResult()启动您的人.

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

虽然不完全是你提出的问题,但我建议你阅读这篇关于退出按钮的文章,这些按钮会说一些非常重要的内容

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

  • 谢谢安德鲁,这有点让人大开眼界.我一直在想Activity.finish()关闭它而不是把它放在队列上进行关闭.在那种情况下要做一些返工. (3认同)