Я пытаюсь разработать приложение для Android. Я использовал this учебник. MainActivity код, как показано нижеonCreate() workflow confusion
@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 равна нулю или нет, мы пытаемся сохранить текущий экран пользователя. Я думаю, он охватывает возможность нажатия кнопки «домой» и повторного открытия приложения и поворота экрана. Но в текущей ситуации onCreate не вызывается, когда приложение снова открыто. Но я прошел рабочий процесс android в следующем link, он не принимает вызов onCreate() еще раз. Но мы используем saveInstanceState в качестве параметра, который используется для проверки того, что он имеет предыдущее состояние или нет, как понять. Подводя итог, я запутался в использовании savedInstanceState. Если он используется для проверки предыдущего состояния, то почему onCreate не вызывается?
EDITED: Как поясняют комментарии, повторное открытие приложения не вызывает отдыха. Как я знаю, onStart() вызывается. Как я могу проверить savedState в onStart, чтобы воссоздать представления или сохранить предыдущий фрагмент?
onRestoreInstanceState - это волшебная функция, которая решает вас смутить – FlanschiFox
Я знаю, что есть такая функция, но я не буду использовать какой-либо сохраненный параметр. Я просто смутил объясненные и упомянутые способы использования. – starrystar
onCreate вызывается, когда активность только что создана. Когда приложение снова открывается, оно перезапускается, а не воссоздается, что означает, что ваша деятельность все еще существует. Когда вы поворачиваете свой телефон, действие уничтожается и воссоздается в новой конфигурации, поэтому onCreate называется –