在某些情況下可能會終止任何活動(例如「其他應用程序需要內存」)。在此之後,再次調用onCreate
。活動生命週期和類屬性
該文件說,在這種情況下,「進程被殺害」。這是否意味着整個活動實例被重新構建並重新構建或僅構建GUI部件?
考慮:
public class MyActivity extends Activity
{
private SomeClass someProperty = null;
@Override
protected void onCreate (Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
if (someProperty == null) someProperty = new SomeClass();
Log.d ("X", someProperty.toString());
}
}
將someProperty
是null
活動被殺害後,並配備再次前,或將someProperty
仍然是一樣的嗎?
我在問這個,因爲很難模擬「其他應用程序需要內存」的條件。
謝謝。我懷疑我必須經歷保存的實例狀態。 「沒有正常銷燬」是什麼意思?你的意思是說,當活動被破壞時不會調用'onSaveInstanceState',因爲系統決定釋放內存? – Hyperboreus
對不起,令人困惑的表情。事實上,恰恰相反。查看我的編輯細節。 –
謝謝你的負載放大。你知道在活動的情況下會發生什麼情況會被回收,因爲另一個流程會跳到前面(例如打電話),並且由於內存不足,第一個活動將被回收。在這種情況下'onSaveInstanceState'是否被調用? – Hyperboreus