iOS App nach Rückkehr in den Vordergrund einfach nur schwarz

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • iOS App nach Rückkehr in den Vordergrund einfach nur schwarz

    Hallo,

    ich habe hier in — so scheint mir — vertracktes Problem:

    Wenn man in einer bestimmten Ansicht unserer App (nicht in anderen Ansichten) schnell (innerhalb weniger Sekunden) hintereinander in den Hintergrund geht (homebutton) und dann zurück in die App, dann passieren zwei Dinge:

    1) Bei der Rückkehr in die App wird das Launch Image angezeigt (Habe gelesen das würde passieren, wenn der aktuelle View nicht mehr zur Verfügung steht, habe aber nicht gegesen, dass viewDidUnload aufgerufen würde.

    2) Danach ist der Bildschrim einfach komplett schwarz. Vollständig. Mit dem Home Button kann man die App wieder verlassen.

    Mit dem Debugger habe ich festgestellt, dass im Fehlerfall nur noch applicationWillEnterForeground: (das ich grosszügig von Code befreit habe um das als Fehlerquelle auszuschliessen) aufgerufen wird, aber nicht mehr applicationDidBecomeActive: . Darüberhinaus habe kann ich nicht feststellen, dass irgendein Code in unserer App ausgeführt wird (Und das Time Profiler Instrument scheint mir da recht zu geben). Der Debugger hält die App aber noch für aktiv. Background Tasks habe ich auch alle abgeschaltet.

    Ich weiss, dass da jetzt niemand eine Lösung für haben kann ("Ah, in foo.m Zeile 73 …"), aber:
    * Hattet ihr sowas schon mal?
    * Welche Tools oder Methodiken kann ich jetzt verwenden um herauszubkommen, was da nicht passt?

    Danke

    Alex

    P.S. Der Fehler tritt nur auf Geräten (allen iOS Geräten, die ich bekommen konnte), aber nicht im Simulator auf. Der Fehler tritt unter 5.1 auf, und auch unter dem OS, über das wird nicht sprechen dürfen. Der Fehler tritt auch dann genau so auf, wenn kein Debugger angeschlossen ist.
    The only thing that really worried me was the ether.
  • Ich würde zunächst mal die Methoden des Lade- und des Anzeigezyklus des entsprechenden Viewcontrollers im Debugger beobachten. Kann es sein, dass Du in view{Will|Did}Unload etwas wegschmeißt, was durch loadView und viewDidLoad nicht wiederhergestellt wird?

    EDIT: Hat das Applikationsfenster oder der View irgendeines Viewcontrollers einen schwarzen Hintergrund?
    „Meine Komplikation hatte eine Komplikation.“

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von macmoonshine ()

  • Das war auch meine aller erste Vermutung, da habe ich aus applicationDidEnterBackground: und applicationWillResignActive: sämtlichen Code entfernt. Ohne Effekt.

    ABER! Dein Posting hat mich noch einmal dazu gebracht zu prüfen, ob die App irgendwo anders noch auf UIApplicationDidEnterBackgroundNotification reagiert … und siehe da, seit ich DEN Code ausgebaut habe scheint es zu funktionieren.

    Vielen Dank für den Schubs in die richtige Richtung!

    Alex
    The only thing that really worried me was the ether.
  • Eigentlich hat man in einer iOS-App nach dem Start nur einen schwarzen Bildschirm, wenn man dem Fenster oder den Views explizit einen schwarzen Hintergrund gibt.

    Läuft die App eigentlich noch oder ist sie abgestürzt? Der Absturz könnte verhindern, dass sie überhaupt was auf dem Screen darstellen kann...
    „Meine Komplikation hatte eine Komplikation.“
  • Läuft in dem speziellen View irgendetwas ausserhalb des MainThreads wenn die App deaktiviert wird?

    Muss man die App einfach nur einmal deaktivieren und sofort wieder aktivieren oder passiert dies nur wenn man deaktiviert, aktiviert, deaktiviert, aktiviert, usw.?

    Kannst Du den Debugger in diesem Zustand anhalten und befindet er sich dann im Main Loop?