Jak wszyscy wiemy, wiele aplikacji na Androida wyświetla bardzo krótko biały ekran, zanim pojawi się ich pierwszy Activity. Ten problem jest obserwowany w następujących przypadkach:
Aplikacje na Androida, które rozszerzają
Applicationklasę globalną i wykonują w nich główne inicjalizacje.ApplicationPrzedmiot jest zawsze tworzona przed pierwsząActivity(fakt, że można zaobserwować w debuggera), więc ma to sens. To jest przyczyna opóźnienia w mojej sprawie.Aplikacje na Androida, które wyświetlają domyślne okno podglądu przed ekranem powitalnym.
Ustawienie android:windowDisablePreview = "true"oczywiście nie działa tutaj. Nie mogę też ustawić motywu nadrzędnego ekranu powitalnego Theme.Holo.NoActionBarzgodnie z opisem tutaj , ponieważ [niestety] mój ekran powitalny korzysta z pliku ActionBar.
Tymczasem aplikacje, które nie rozszerzają Applicationklasy , nie wyświetlają białego ekranu podczas uruchamiania.
Chodzi o to, że idealnie inicjalizacje wykonywane w Applicationobiekcie muszą nastąpić przedActivity pokazaniem pierwszej . Moje pytanie brzmi więc, jak mogę wykonać te inicjalizacje podczas uruchamiania aplikacji bez użycia Applicationobiektu? Prawdopodobnie używając Threadlub Service, jak przypuszczam?
To ciekawy problem do przemyślenia. Nie mogę tego ominąć w zwykły sposób (ustawiając NoActionBarmotyw), ponieważ tragicznie mój ekran powitalny ma w rzeczywistości ActionBarjakieś niepowiązane przyczyny.
Uwaga:
Odniosłem się już do następujących pytań:
Bibliografia:
Applicationklasy nadal jest to problem . Jest to spowodowane sposobem „zimnego uruchamiania” aplikacji w nowszych wersjach Androida. Google faktycznie zajął się terminami uruchomienia Google I / O w tym roku i zostanie to naprawione w N z tego, co pamiętam. W międzyczasie powinieneś przyjrzeć się temu, co Google nazywa „markowym ekranem startowym”. Oto przykład jak go stworzyć: antonioleiva.com/branded-launch-screen - koniec z białym ekranem na początku ;-) I proszę, nie używaj splashscreenów - to denerwuje użytkownika.


