私が持っている本は、ライフサイクルの操作方法を説明するのにひどいものです。誰かが記入してくれることを願っています.
私のアプリの構造は、最初に起動したときに、ユーザーが受け入れなければならない合法的なおしゃべりでいっぱいのアクティビティを開始するというものです。彼が「OK」と言ったら、メインのアクティビティを開始し、次のように終了を呼び出します。
public void onClick(View view) { //as a result of "I accept"
Intent mainIntent = new Intent(mParent, EtMain.class);
startActivity(mainIntent); // Start the main program
finish();
}
次に、onCreate メソッドの EtMain で、いくつかのタブを取得し、いくつかのクラスをインスタンス化します。
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
SetupTabs.setMyTabs(mTabHost, this);
mComData = new ComFields(this); // Create the objects
mDepWx = new WxFields(this, DepArr.Departure);
mArrWx = new WxFields(this, DepArr.Arrival);
mDepVs = new DepFields(this);
mArrVs = new ArrFields(this);
mTabHost.setOnTabChangedListener(new OnTabChangeListener(){
}
質問: 最初のフラグメントの 'finish' は、法的バブル アクティビティを終了する必要があるため、再開されることはありませんよね? EtMain は、アプリがバックグラウンドにプッシュされたとしても (外部で強制終了されるまで) 永久に残りますよね?
現在のやり方では、EtMain がプッシュされ、後で (アイコンをタップして) フォアグラウンドに移動すると、まるで完全な開始であるかのように法的バブル画面を通過します。これは私が防止したいことです。再び画面。
2 番目のコード フラグメントで onRestart をオーバーライドし、アプリを再起動するために何かを入れたいと思うでしょう。そこがよくわからない部分です。
私の質問は、onRestart で何をする必要があるかです。すべてのタブとタブ内のデータ、およびすべてのオブジェクトのインスタンス化を再作成する必要がありますか? または、アプリのメモリ状態がどこかに保存され、他の何かがフォアグラウンドに持ち込まれる前の状態に復元されます。その場合、すべてのオブジェクトとリスナーがまだ存在するため、多くのことを行う必要はありませんか?