2016-05-25 21 views
0

Manchmal, wenn ich auf dem Desktop auf mein App-Symbol klicke, bleibt es für einen Zeitraum von 1 ~ 2 Sekunden markiert, dann öffnet sich die App und zeigt den Startbildschirm. Ich habe keine Ahnung, wie man die Wartezeit verkürzt.In iOS, Welche Funktionen laufen vor dem Startbildschirm zeigt

Also ich möchte in dieser Zeit wissen, was die App gemacht hat? Welche Funktionen werden ausgeführt, bevor der Startbildschirm angezeigt wird?

+1

"Desktop"? Verwirrt ... – trojanfoe

+0

Es bedeutet, auf Simulator –

Antwort

0

Überprüfen Sie didFinishLaunchingWithOptions Methode, wenn Sie einen Timer dort gehalten haben.

Im Allgemeinen ist es ein O Problem, wenn es selten vorkommt, aber wenn es passiert jedes Mal Sie die App öffnen, hat es Problem in der folgenden Methoden, um:

applicationWillEnterForeground

applicationDidBecomeActive

+0

löschte den Code in 'ApplicationWillEnterForeground' und 'ApplicationDidBecomeActive' und versuchte einige Male, läuft gut, aber brauchen mehr Tests – Shinan

2

Es klingt für mich, als ob du viel in der viewDidLoad Funktion deines ersten ViewControllers deines Haupt-Storyboards machst. Dies wird dazu führen, dass der Startbildschirm auf dem Bildschirm bleibt, bis diese Funktionalität beendet ist.

Sie können dies beheben, indem Sie diese Funktionalität in einen Hintergrundthread einfügen, wenn es nicht unbedingt erforderlich ist, dass es beendet ist, bevor der viewController angezeigt wird.

+0

Meiner Meinung nach die Viewcontroller-'ViewDidLoad' Methode läuft nach didFinishLaunchingWithOptions, die steuert die Startzeit des Startbildschirms. Aber meine App ist langsam, bevor der Startbildschirm angezeigt wird. – Shinan

+0

Ja 'didFinishLaunchingWithOptions' wird vor' viewDidLoad' ausgeführt, aber der allererste 'viewDidLoad' Ihrer App wird für den Startbildschirm berücksichtigt. Ich habe vor ein paar Monaten eine App geschrieben, in der ich genau das gleiche Problem hatte und durch Ausdünnen dieses 'viewDidLoad' wurde das Problem behoben. – Swinny89

+0

Sie müssen beide Funktionen ausdünnen, stellen Sie sicher, dass Sie nur das tun, was in diesen Funktionen für die App 100% wichtig ist. Wenn Sie können, einige Dinge in einem Hintergrund-Thread oder asynchron tun, und es wird viel schneller starten – Swinny89

0

didFinishLaunchingWithOptions Anrufe zuerst. Stellen Sie daher sicher, dass Sie alle Verarbeitungsaufgaben für Hintergrundthreads ausgeführt haben. Damit werden die Hauptthreads nicht blockiert und die makeKeyAndVisible-Funktion in der Anwendung aufgerufen, um die App schnell zu starten. Hoffe das hilft.

0

Bitte überprüfen Sie, ob Sie eine zeitaufwendige Aufgabe beim Start der App - viewDidLoad, viewWillAppear Delegate Methoden .... Tun Sie jede zeitaufwendige Aufgabe auf der ViewDidAppear auch wäre es toll, es auf anderen Thread zu tun (wenn nicht ein UI-bezogenes Zeug).