gpt4 book ai didi

android - 当应用程序处于后台时, Activity 和 fragment 会发生什么

转载 作者:行者123 更新时间:2023-11-29 23:18:30 24 4
gpt4 key购买 nike

我了解 Activity/Fragment 的基本生命周期,但有时,当用户将应用长时间置于后台状态时,我不确定他再次打开应用时会发生什么。最近我遇到了一个错误:用户通过调用保存在类变量 (textView = findViewById(...)) 中的 View 的方法,在 fragment 的 OnResume 方法中获取空指针异常。该变量在 OnViewCreated() 中设置。是否有可能在很长一段时间内 fragment 可能会由于内存不足而丢失它的字段? onResume() 何时调用,onCreate() 何时调用?

最佳答案

如果应用程序在后台运行很长时间,它的进程将被操作系统终止,或者如果设备运行内存不足。要测试您的应用在这些条件下的工作方式,请在您设备的开发人员选项中使用标记 “不保留 Activity ”。在所描述的情况下,当 Activity 出现在前台时,将调用 onCreate

如果进程尚未终止,则将触发 onResume。正常变量仍然存在,但问题是您永远无法确定何时调用 onResume 以及何时调用 onCreate(因为您无法控制 Android 何时调用只是去把堆栈上的东西扔出窗外……任何当前未使用的东西都有资格销毁)。

所以我的解决方案是添加带有 if 条件的 null 检查:如果变量为 null 则初始化并执行操作,如果不是则执行操作。

关于android - 当应用程序处于后台时, Activity 和 fragment 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com