【问题标题】:Android onCreate method is called again after for a while一段时间后再次调用Android onCreate方法
【发布时间】:2021-07-28 23:35:48
【问题描述】:

一段时间后(在后台或前台),活动 oncreate 方法一次又一次地触发。没有新的意图,没有刷新屏幕。

之前我怀疑内存不足。我认为,Android操作系统决定关闭我的应用程序是因为内存不足。所以我编写了在“onSaveInstanceState”方法上记录内存大小的代码。由于每次关闭时间,都必须调用这个方法。

看了这篇日志,这不是内存情况。超过 1 gB 的可用内存。所以这个问题与内存情况无关。

这就是问题所在?

“在活动首次打开后,为什么以及何时调用 onCreate?

【问题讨论】:

    标签: android android-lifecycle oncreate android-memory onsaveinstancestate


    【解决方案1】:

    onCreate() 仅在实例化(创建)Activity 时调用一次。如果您再次看到此方法被调用,则您的 Activity(或托管您应用的整个操作系统进程)已被杀死,然后又重新启动。

    【讨论】:

    • 如果用户没有与之交互,Android 将在大约 30 分钟后关闭后台操作系统进程。如果用户最近没有与之交互,Android 会假定不需要该过程。一些制造商已经通过更积极的进程终止行为来定制它。如果您的应用程序处于前台,则不应该发生这种情况,尽管如果您的手机长时间处于睡眠状态,Android 可能会决定您的操作系统进程也不需要。运行进程会消耗能量以及内存和电池寿命是移动设备的重中之重。
    • 您的应用需要在这种环境下正常运行,因此您需要确保它即使被杀死并重新启动也能正常运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多