Мои книги ужасно объясняют, как работать с жизненным циклом, я скучаю по многим вещам, которые, я надеюсь, кто-то может заполнить.
Моя структура приложения такова, что при первом запуске, он запускает действие, полное правового пузыря, которое должен принять пользователь.Когда он говорит «хорошо», я начинаю свою основную деятельность и затем вызываю финиш следующим образом:
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();
}
Затем в EtMain в методе onCreate у меня есть несколько вкладок и я создаю экземпляры некоторых классов:
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(){
}
Вопросы: «Завершение» в первом фрагменте должно прекратить действие допустимого всплытия, поэтому оно никогда не будет перезапущено, верно?И EtMain останется навсегда (до тех пор, пока не будет убит внешне), даже если мое приложение отодвинется на задний план, верно?
Так оно и есть сейчас, когда EtMain выталкивают и позже выводят на передний план (нажавна значке), он проходит через экран legalbabble, как будто это полный старт - это то, что я хотел бы предотвратить - снова проходя через экран legalbabble.
Казалось бы, я бы хотел переопределитьonRestart во втором фрагменте кода и положить туда что-то, чтобы перезапустить приложение, верно?Это та часть, которая мне не ясна.
Мой вопрос: что нужно сделать в onRestart?Нужно ли заново создавать все вкладки и данные на вкладках и все экземпляры моих объектов?Или состояние памяти приложения сохраняется в каком-то месте, а затем восстанавливается до состояния, в котором оно находилось до того, как что-то еще было выведено на передний план, и в этом случае не нужно много делать, потому что все объекты и слушатели все еще будут там?