android - onCreate 没有在调试版本中被调用?

标签 android oncreate onresume

我发现我的应用程序在调试构建与发布构建之间的行为不同:

在调试中,当按下主页按钮后重新打开应用程序时,会调用 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/

相关文章:

java.lang.SecurityException :Clearing DeviceOwner data is forbidden

android - 是否可以将 AndEngine 与 SherlockActivity 一起使用?

android - onCreate vs onCreateView 整合ActionBar-PullToRefresh

java - 修改 Parcelables 的 proguard-android.txt

android - 针对不同 API 级别的多个 APK 或单个 APK?

Android GCM 向服务器发送 token

Android资源未找到异常oncreate

android - 为什么在关闭从 fragment 启动的 DialogFragment 后从未触发 fragment 的 onResume 方法?

android - onPause onResume 替代方案?

flutter - didChangeAppLifecycleState 没有按预期工作