우리 모두 알다시피, 많은 Android 앱은 첫 번째 Activity
초점을 맞추기 전에 매우 짧은 시간 동안 흰색 화면을 표시합니다 . 이 문제는 다음과 같은 경우에 나타납니다.
전역
Application
클래스 를 확장하고 그 안에서 주요 초기화를 수행 하는 Android 앱 .Application
객체는 항상 첫 번째 전에 만든Activity
이 의미가 있도록 (디버거에서 관찰 할 수있는 사실). 이것이 제 경우 지연의 원인입니다.스플래시 화면 앞에 기본 미리보기 창을 표시하는 Android 앱.
설정은 android:windowDisablePreview = "true"
분명히 여기서 작동하지 않습니다. 도 아니다 나는에 시작 화면의 부모 테마를 설정할 수 있습니다 Theme.Holo.NoActionBar
설명 된대로 여기 [불행] 내 시작 화면 차종이의 사용하기 때문에, ActionBar
.
한편, Application
클래스를 확장하지 않는 앱 은 시작할 때 흰색 화면이 표시 되지 않습니다 .
문제는 이상적으로는 Application
객체 에서 수행되는 초기화 가 첫 번째 항목 이 표시 되기 전에 발생해야한다는 것 Activity
입니다. 그래서 제 질문은 객체 를 사용 하지 않고 앱 시작시 이러한 초기화를 어떻게 수행 할 수 Application
있습니까? Thread
또는을 사용하는 것 같습니다 Service
.
이것은 생각할 흥미로운 문제입니다. NoActionBar
비극적으로 내 스플래시 화면에는 실제로 ActionBar
관련없는 이유 가 있기 때문에 일반적인 방식으로 ( 테마 를 설정하여 ) 우회 할 수 없습니다 .
노트 :
나는 이미 다음 질문을 언급했습니다.
참조 :
Application
클래스에서 옮긴 후에도 여전히 문제가 될 수 있습니다 . 이는 Android가 앱을 "콜드 스타트"하는 방식의 최신 버전 때문입니다. Google은 실제로 올해 Google I / O에서 출시 시간을 해결했으며 내가 기억하는대로 N으로 수정 될 것입니다. 그동안 Google이 '브랜드 출시 화면'이라고 부르는 것을 살펴 봐야합니다. 생성 방법에 대한 예는 다음과 같습니다. antonioleiva.com/branded-launch-screen- 처음에는 더 이상 흰색 화면이 없습니다 ;-) 그리고 스플래시 화면을 사용하지 마십시오. 사용자에게 짜증이납니다.