Android 是否在调试生成中未调用onCreate?

Android 是否在调试生成中未调用onCreate?,android,oncreate,onresume,Android,Oncreate,Onresume,我发现我的应用程序在调试版本和发布版本之间的行为有所不同: 在调试中,当按下home按钮后重新打开应用程序时,将调用onResume。(不调用onCreate) 在生产(发布构建)中,当按下home按钮时,重新打开应用程序调用onCreate first 这种差异引入了一个bug,因为我在onCreate中设置了一个标志。问:哪一个是正确的行为?我是否能够使我的发布版本以与调试版本相同的方式工作(在按下home按钮后重新打开应用程序时不会调用onCreate) 在调试中,当按下home按钮后重新

我发现我的应用程序在调试版本和发布版本之间的行为有所不同:

在调试中,当按下home按钮后重新打开应用程序时,将调用onResume。(不调用onCreate)

在生产(发布构建)中,当按下home按钮时,重新打开应用程序调用onCreate first

这种差异引入了一个bug,因为我在onCreate中设置了一个标志。问:哪一个是正确的行为?我是否能够使我的发布版本以与调试版本相同的方式工作(在按下home按钮后重新打开应用程序时不会调用onCreate)

在调试中,当按下home按钮后重新打开应用程序时,onResume 被称为。(不调用onCreate)

  • 这是完全正确的行为
设置->开发者选项->应用部分。 “不保留活动”-默认设置为关闭

我怀疑“在按下主页按钮后重新打开应用程序时,”您的活动仅在后台进行,通常不应被销毁,因此不应调用onCreate。因此,调试模式按预期工作

在释放模式下,当他在后台时,你有一些东西会扼杀你的活动。可能是代码的一部分,可能是丢失的翻译或某个地方的意外异常,您应该得到一个ANR或“应用程序意外退出”

我建议在文件中尝试一些日志,或者检查在发布模式下会发生什么


可以是另一个应用程序,甚至来自Android操作系统,它可以检测到你的应用程序进入后台,因此它会关闭它以在内存中腾出更多空间,但他不会关闭调试应用程序。

请原谅我的蹩脚英语-(你的意思是你不明白我的问题是什么,或者调试或发布构建行为根本没有意义?破坏活动的行为(需要调用onCreate)依赖于操作系统而不是应用程序如果有帮助的话,您也可以覆盖onDestroy和onRestart。请详细说明覆盖onDestroy()或onRestart()?谢谢!我觉得这是我寻找建议操作系统在后台终止应用程序的罪魁祸首代码的正确方向:我记录onDestroy()当按下home键时,不会调用它,但是当重新打开它时会调用onCreate()。可以肯定的是,刚刚学到的一件事是,业务规则是依靠此事件实现的,这是不好的。