Wie wir alle wissen, zeigen viele Android-Apps sehr kurz einen weißen Bildschirm an, bevor sie zum ersten Mal Activity
in den Fokus rücken. Dieses Problem tritt in folgenden Fällen auf:
Android-Apps, die die globale
Application
Klasse erweitern und wichtige Initialisierungen durchführen. DasApplication
Objekt wird immer vor dem ersten erstelltActivity
(eine Tatsache, die im Debugger beobachtet werden kann), daher ist dies sinnvoll. Dies ist die Ursache für die Verzögerung in meinem Fall.Android-Apps, die das Standardvorschaufenster vor dem Begrüßungsbildschirm anzeigen.
Die Einstellung android:windowDisablePreview = "true"
funktioniert hier offensichtlich nicht. Ich kann das übergeordnete Thema des Begrüßungsbildschirms auch nicht Theme.Holo.NoActionBar
wie hier beschrieben einstellen , da mein Begrüßungsbildschirm [leider] ein verwendet ActionBar
.
Währenddessen wird bei Apps, die die Application
Klasse nicht erweitern , beim Start kein weißer Bildschirm angezeigt.
Die Sache ist, idealerweise müssen die im Application
Objekt durchgeführten Initialisierungen erfolgen, bevor die erste Activity
angezeigt wird. Meine Frage ist also, wie ich diese Initialisierungen beim Start der App durchführen kann, ohne ein Application
Objekt zu verwenden. Möglicherweise mit einem Thread
oder Service
, nehme ich an?
Dies ist ein interessantes Problem. Ich kann es nicht auf die übliche Weise umgehen (indem ich das NoActionBar
Thema einstelle ), da mein Begrüßungsbildschirm tragischerweise aus ActionBar
nicht verwandten Gründen tatsächlich einen hat .
Hinweis:
Ich habe bereits folgende Fragen angesprochen:
Verweise:
Application
Klasse entfernt haben. Dies ist auf neuere Versionen von Android zurückzuführen, mit denen die Apps "kalt gestartet" werden. Google hat sich dieses Jahr tatsächlich mit den Startzeiten bei Google I / O befasst und wird, soweit ich mich erinnere, in N festgelegt. In der Zwischenzeit sollten Sie sich ansehen, was Google als "Marken-Startbildschirm" bezeichnet. Hier ist ein Beispiel, wie man es erstellt: antonioleiva.com/branded-launch-screen - am Anfang kein weißer Bildschirm mehr ;-) Und bitte verwenden Sie keine Begrüßungsbildschirme - es ist für den Benutzer ärgerlich.