나는 안드로이드 애플 리케이션을 개발하려고합니다. 나는 this 튜토리얼을 사용했다. MainActivity 코드는onCreate() workflow 혼란
내가 알고있는 것처럼@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라는 이름이 –