這種行爲是完全正常的,並希望。 系統可能決定停止在後臺的Activities
以釋放一些內存。 同樣的事情發生時,例如,旋轉設備。
通常情況下,當您重新創建Activity
時,您將實例狀態(如輸入的文本和內容)保存到包中,並從包中獲取這些值。
下面是一些標準的代碼,我使用:
private EditText mSomeUserInput;
private int mSomeExampleField;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO inflate layout and stuff
mSomeUserInput = (EditText) findViewById(R.id.some_view_id);
if (savedInstanceState == null) {
// TODO instanciate default values
mSomeExampleField = 42;
} else {
// TODO read instance state from savedInstanceState
// and set values to views and private fields
mSomeUserInput.setText(savedInstanceState.getString("mSomeUserInput"));
mSomeExampleField = savedInstanceState.getInt("mSomeExampleField");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// TODO save your instance to outState
outState.putString("mSomeUserInput", mSomeUserInput.getText().toString());
outState.putInt("mSomeExampleField", mSomeExampleField);
}
來源
2013-10-07 03:03:14
flx
向上導航應該能夠在不調用'onCreate()'的情況下從ActivityB返回到ActivityA。你一定在做些時髦的事情。請發佈您正在使用的代碼來執行此操作。另外,當ActivityB運行時,您確定ActivityA尚未完成嗎? –