Wie wir alle wissen, zeigen viele Android-Apps sehr kurz einen weißen Bildschirm an, bevor sie zum ersten Mal Activityin den Fokus rücken. Dieses Problem tritt in folgenden Fällen auf:
Android-Apps, die die globale
ApplicationKlasse erweitern und wichtige Initialisierungen durchführen. DasApplicationObjekt 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.NoActionBarwie hier beschrieben einstellen , da mein Begrüßungsbildschirm [leider] ein verwendet ActionBar.
Währenddessen wird bei Apps, die die ApplicationKlasse nicht erweitern , beim Start kein weißer Bildschirm angezeigt.
Die Sache ist, idealerweise müssen die im ApplicationObjekt durchgeführten Initialisierungen erfolgen, bevor die erste Activityangezeigt wird. Meine Frage ist also, wie ich diese Initialisierungen beim Start der App durchführen kann, ohne ein ApplicationObjekt zu verwenden. Möglicherweise mit einem Threadoder Service, nehme ich an?
Dies ist ein interessantes Problem. Ich kann es nicht auf die übliche Weise umgehen (indem ich das NoActionBarThema einstelle ), da mein Begrüßungsbildschirm tragischerweise aus ActionBarnicht verwandten Gründen tatsächlich einen hat .
Hinweis:
Ich habe bereits folgende Fragen angesprochen:
Verweise:
ApplicationKlasse 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.


