我有一个Activity
,其中我初始化一个类成员变量onCreate()
。在某些情况下,我需要startActivity()
这意味着这个Activity
变成停止状态。当我回来时,我需要使用这个变量。当Activity停止时,Android是否清理Activity的成员变量
这在大多数手机中都能正常工作,但我的用户也遇到了一些问题,因为会员在手机上变为null
。该成员只包含一些String
和POJO
。
Android是否清理Activity的成员变量以释放内存?
我有一个Activity
,其中我初始化一个类成员变量onCreate()
。在某些情况下,我需要startActivity()
这意味着这个Activity
变成停止状态。当我回来时,我需要使用这个变量。当Activity停止时,Android是否清理Activity的成员变量
这在大多数手机中都能正常工作,但我的用户也遇到了一些问题,因为会员在手机上变为null
。该成员只包含一些String
和POJO
。
Android是否清理Activity的成员变量以释放内存?
即使未完成活动,如果调用onDestroy,那些成员变量将被清除。您可以在开发人员设置中打开“不要让活动保持活动状态”来模拟此操作。一旦启用,再次开始新的活动,然后暂停(即击中home键)
要解决这个问题,你需要将这些成员变量存储的onSaveInstanceState,然后使用savedState摞的onCreate
恢复它们但我的活动没有onDestroy调用,它只是被onStop调用。当onStop调用某个时候,这些成员变量会被清除吗? –
即使您没有调用完成(),也可以调用onDestroy。这可能发生在内存不足或其他问题时。如果你打开不保持活动活动设置,你会明白我的意思。在这种情况下,您会看到onStop和onSaveInstanceState被调用。如果您的活动在暂停时被销毁,则onCreate会再次被调用,并且savedState包不会为空。 – craya
onCreate()是否是本地成员? –
他形容它是一个“成员变量”,意思是不是本地的 - 假设描述是准确的。你是否搜索过变量的用法,以确保你没有像'onStop'那样将其设置在其他地方? – nasch
对不起,我的描述。该成员属于该活动,不属于本地。我确定在初始化后我没有设置变量。 –