Android 我应该在onCreate或onRestoreInstanceState中恢复savedinstancestate吗?
我有一个活动,它为结果启动一些其他活动,因此当结果返回时,该活动可能已被销毁或未被重新创建 我已重写onSaveInstanceState,以便添加需要保留和恢复的数据 当活动被销毁并重新创建时,onCreate被传递给savedInstanceState包;但是onRestoreInstanceState()也被调用并传递相同的包 那么,我应该把从bundle中提取数据并恢复状态的代码放在哪里呢?在onCreate还是在onRestoreInstanceState中?后者是否保证总是被调用 是否可能在不调用onCreate的情况下调用onRestoreInstanceState?(例如,如果活动停止并重新启动,但没有销毁和重新创建)?安卓在onStart()和onResume()生命周期方法之间调用onRestoreInstanceState()方法。因此,为了还原活动的状态,只需实现onRestoreInstanceState()方法还原活动状态。“您可以选择实现onRestoreInstanceState(),而不是在onCreate()期间恢复状态,系统会在onStart()方法之后调用onRestoreInstanceState()。仅当存在要还原的已保存状态时,系统才会调用onRestoreInstanceState(),因此您无需检查捆绑包是否为NULL“ 下面的链接非常清楚地解释了重启活动Android 我应该在onCreate或onRestoreInstanceState中恢复savedinstancestate吗?,android,oncreate,onrestoreinstancestate,Android,Oncreate,Onrestoreinstancestate,我有一个活动,它为结果启动一些其他活动,因此当结果返回时,该活动可能已被销毁或未被重新创建 我已重写onSaveInstanceState,以便添加需要保留和恢复的数据 当活动被销毁并重新创建时,onCreate被传递给savedInstanceState包;但是onRestoreInstanceState()也被调用并传递相同的包 那么,我应该把从bundle中提取数据并恢复状态的代码放在哪里呢?在onCreate还是在onRestoreInstanceState中?后者是否保证总是被调用 是
这是一种将代码保存到onRestoreInstanceState()中的好方法,或者您可以在onCreate()中检查Bundle args,如果不为null,则可以执行代码。第一次onCreate()时will调用时,时间包参数将为null。谢谢。在这种情况下,onCreate期间的
savedInstanceState
有什么用?系统重新创建活动并将包同时传递给方法ocreate和onRestoreInstanceState方法。您可以同时使用这两种方法来恢复状态。现在我更喜欢onCreate方法,因为我总是从y以及来自oncreate的其他代码。@Elye您可能想在oncreate()中知道是否有以前的状态要加载。此外,如果活动未被销毁,则不会调用oncreate()。为了实现计时器并在活动不在屏幕上时暂停它,我需要使用onRestoreInstanceState()相应地调整计时器。这根本不能回答问题。问题是使用哪一个。您可以使用onRestoreInstanceState