Android 11 onCreate() 调用每秒钟都丢失

Posted

技术标签:

【中文标题】Android 11 onCreate() 调用每秒钟都丢失【英文标题】:Android 11 onCreate() call is missing every second time 【发布时间】:2021-01-21 07:53:50 【问题描述】:

android 11 上运行时,一个成熟的应用突然出现了前所未有的生命周期问题:

开始调试 onCreate() 被调用 onStart() 被调用 onResume() 被调用 应用正在运行 用户完成应用程序 onStop() 被调用 用户点击应用图标 onDestroy() 被调用 onCreate() 被调用 onStart() 被调用 onResume() 被调用 应用正在运行 用户完成应用程序 onStop() 被调用 用户点击应用图标 空窗弹出,没有调用,应用被屏蔽

这种情况会在用户每两次启动应用时发生。我不知道为什么会发生这种情况——当用户点击应用程序图标时,我希望 Android 总是调用 onCreate() 或 onStart()。有什么想法吗?

【问题讨论】:

onResume() 呢? 应用程序中是否运行任何服务?在这些“重新启动”之后可能无法正确清除和/或重新初始化的任何资源? 我在上面添加了 onResume() 调用。 没有服务在运行,也没有未清理的资源。 【参考方案1】:

我发现了错误:我在 super.onDestroy() 处设置了断点,而不是在 onDestroy() 的开头。由于此函数在第二次运行时没有准备好,并且从未调用 super.onDestroy(),因此最后一次 onCreate() 从未发生。

【讨论】:

以上是关于Android 11 onCreate() 调用每秒钟都丢失的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Android 缓存视图并避免每次都调用 onCreate

在 OnCreate() Android 中为联系人调用 onActivityResult

android中的fragment是先执行oncreate还是oncreateview

android 关于为什么在onCreate里调用view.getChildAt.getLeft() 没有值!

Android - 将用户发送到 Activity 的 GCM 推送通知不会导致 onCreate 调用

Android 整理 Intent 调用父级的 onCreate()