私はアンドロイドアプリを開発しようとしています。私はthisチュートリアルを使用しました。私が理解したようMainActivityコードは、onCreate()ワークフローの混乱
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
if (savedInstanceState == null) {
// withholding the previously created fragment from being created again
// On orientation change, it will prevent fragment recreation
// its necessary to reserve the fragment stack inside each tab
initScreen();
} else {
// restoring the previously created fragment
// and getting the reference
carouselFragment = (CarouselFragment) getSupportFragmentManager().getFragments().get(0);
}
}
以下の通りですsavedInstanceStateをチェックする行がnullであるかどうか、私たちは、ユーザーに現在の画面を保存しようとしています。私は、ホームボタンを押してアプリを開き、画面を回転させる可能性があると考えています。しかし、現在の状況では、アプリケーションが再オープンされたときにonCreateは呼び出されません。しかし、私はアンドロイドのワークフローを以下のlinkで行ったが、onCreate()を再度呼び出すことはできません。しかし、われわれはsavedInstanceStateをパラメータとして使用しています。このパラメータは、前の状態かどうかを確認するために使用されます。まとめると、私はsavedInstanceStateの使い方を混乱させます。以前の状態を確認するために使用される場合、なぜonCreateが呼び出されないのですか?
EDITED:コメントの説明どおり、アプリを再度開くとレクリエーションが発生しません。私が知っているようにonStart()が呼び出されます。ビューを再作成するか、以前のフラグメントを保存するために、onStartでsavedStateをチェックするにはどうすればよいですか?それらに対応するコールバックと
onRestoreInstanceStateはあなたの混乱を解決する魔法の機能です。 – FlanschiFox
私はそこに機能があると知っていますが、私は保存されたパラメータを使用しません。私はちょうど説明され、使用された使用法について混乱させた。 – starrystar
onCreateは、アクティビティが新しく作成されたときに呼び出されます。アプリケーションが再オープンされると、アプリケーションは再作成されずに再起動されます。つまり、アクティビティはそのまま残ります。あなたの携帯電話を回転させると、アクティビティは破棄され、新しい設定で再作成されますので、onCreateは –