问题描述
一个成熟的应用程序在 Android 11 上运行时突然带来了前所未有的生命周期问题:
- 开始调试
- onCreate() 被调用
- onStart() 被调用
- onResume() 被调用
- 应用正在运行
- 用户完成应用
- onStop() 被调用
- 用户点击应用图标
- onDestroy() 被调用
- onCreate() 被调用
- onStart() 被调用
- onResume() 被调用
- 应用正在运行
- 用户完成应用
- onStop() 被调用
- 用户点击应用图标
- 弹出空窗口,什么也没有调用,应用程序被阻止
用户每次启动应用时都会发生这种情况。我不知道为什么会发生这种情况 - 当用户点击应用程序图标时,我希望 Android 总是调用 onCreate() 或 onStart()。有什么想法吗?
解决方法
我发现了错误:我在 super.onDestroy() 而不是在 onDestroy() 的开头设置了断点。由于该函数在第二次运行时没有准备好并且从未调用过 super.onDestroy(),因此最后一次 onCreate() 从未发生过。