理解力がなくて申し訳ありませんが、私は Android 開発の初心者です。
アクティビティ A とアクティビティ B を含むアプリケーションがあり、アクティビティ A からアクティビティ B に移動します。アクティビティ A を離れたときにメソッドがonSaveInstanceState
呼び出されましたが、アクティビティ A (同じアプリケーションのアクティビティ B から) に戻ったときに、メソッド内のバンドルがonCreate
null でした。
アクティビティ A の以前の状態を保存するにはどうすればよいですか? アプリケーションの有効期間中のみデータを保存したいです。
誰かこれを手伝ってくれませんか?
アクティビティ A のコードは次のとおりです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null)
{
Log.v("Main", savedInstanceState.getString("test"));
}
else
{
Log.v("Main", "old instance");
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
Log.v("Main", "save instance");
savedInstanceState.putString("test", "my test string");
super.onSaveInstanceState(savedInstanceState);
}
public void buttonClick(View view)
{
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
}
アクティビティ A に戻るためにボタンを押したときのアクティビティ B のコードは次のとおりです。
public void onBack(View view)
{
NavUtils.navigateUpFromSameTask(this);
}
ベストアンサー1
質問への回答については、Android のドキュメントをご覧ください。android.os.Bundle の Activity インスタンスステートを復元します。
アクティビティライフサイクルの onStart() メソッドの後に onRestoreInstanceState が呼び出されることがわかります。