11

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

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

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

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

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

  • onDestroy()
  • 暂停()
  • onResume()
  • onSaveInstanceState()

非常感谢您对此的任何帮助或建议!

4

1 回答 1

21

您无法控制应用程序何时离开主内存,操作系统可以。仔细查看Activity.finish ...

当您的活动完成并应该关闭时调用它。ActivityResult 被传播回通过 onActivityResult() 启动你的人。

请注意,这与内存无关。至于调用 Activity.onResume,这正是您对生命周期的期望;请记住,onResume 不仅在恢复后调用,即使在 onCreate 之后首次启动应用程序时也是如此。

虽然不完全是你问的,但我建议你阅读这篇关于退出按钮的文章,它继续说一些非常重要的事情

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

于 2011-01-04T15:09:18.867 回答