この動作は全く問題ありと望んでいました。 システムは、バックグラウンドにある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
アップナビゲーションに親アクティビティの
android:launchMode="singleTop"
属性を設定すること'onCreate()'を呼び出さずにActivityBからActivityAに戻ることができるはずです。ファンキーなことをする必要があります。これを行うために使用しているコードを投稿してください。また、ActivityBの実行中にActivityAがまだ終了していないことを確認してください。 –