在onResume之后,Activity的成员变量是否保留值?

时间:2016-01-16 01:27:31

标签: android

是否可以安全地假设当调用onResume时,活动中的所有成员变量本身或对象仍然有效?

换句话说,有可能android在内存压力条件下清理活动的任何成员,然后最终调用onResume?

2 个答案:

答案 0 :(得分:1)

当onResume被调用之前在onCreate,onStart等中设置的任何内容都将在那里。但是,如果由于内存压力而删除了Activity,则可能必须在onRestoreInstanceState或onCreate中重新创建旧值,其中任何一个都将在onResume之前再次调用。

答案 1 :(得分:0)

我不认为活动生命周期保证状态将继续调用onResume。该文档指出您应该重新初始化onPause

中的所有组件

https://developer.android.com/training/basics/activity-lifecycle/pausing.html#Resume

以上链接的摘录:

当用户从Paused状态恢复活动时,系统会调用onResume()方法。

请注意,每当您的活动进入前台时,系统都会调用此方法,包括第一次创建活动时 因此,您应该实现onResume()来初始化您在onPause()期间释放的组件,并执行每次活动进入Resumed状态时必须发生的任何其他初始化(例如开始动画和初始化仅在活动具有用户时使用的组件)焦点)。