我发现我的应用程序在调试构建与发布构建之间的行为不同:
在调试中,当按下主页按钮后重新打开应用程序时,会调用 onResume。 (不调用 onCreate)。
在生产(发布版本)中,按下主页按钮时首先调用 onCreate 重新打开应用。
差异引入了一个错误,因为我在 onCreate 中设置了一个标志。问题:哪一个是正确的行为?我能否使我的发布版本以与调试版本相同的方式工作(在按下主页按钮后重新打开应用程序时不调用 onCreate)?
最佳答案
In debug, when re-open the app after home button is pressed, onResume is called. (onCreate is NOT called).
- 这是完全正确的行为!
设置 -> 开发者选项 -> 应用部分。 “不保留 Activity ”- 默认关闭。
我怀疑“按下主页按钮后重新打开应用程序”您的 Activity 仅在后台运行,通常不应被销毁,因此不应该调用 onCreate。因此 Debug模式按预期工作。
在 Release模式下,你有一些东西会杀死你的 Activity ,他什么时候在后台。可以是代码的一部分,可以是某个地方缺少翻译或未处理的异常,你应该得到一个 ANR 或“应用程序意外退出”
我建议尝试在文件中记录一些日志,或者检查在 Release模式下发生了什么。
可以是另一个应用程序 - 甚至来自 Android 操作系统 - 它检测到你的应用程序进入后台,所以它会杀死它以在内存中腾出更多空间,但他不会杀死调试应用程序..
关于android - onCreate 没有在调试版本中被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46939181/