IOS bluetooth app "Beendet durch signal 9" NUR IM HINTERGRUND-MODUS

Ich bin der Entwicklung einer IOS-app in objective c zeigt die Herzfrequenz von bluetooth BLE mit einer entsprechenden Grafik. Wenn die app läuft im Vordergrund Gabeln alles gut, ohne Probleme.

Aber wenn die app geht in den hintergrund-Modus der BLE Messung noch weiter (ich bin mit "Nutzt die Bluetooth-LE Zubehör"), aber er ist getötet durch das OS nach einigen Minuten oder einigen Sekunden mit der Meldung "die app auf dem iPhone unerwartet beendet --> Meldung vom debugger: Kündigung wegen signal 9.

Ich nicht herausfinden können, warum dies passiert nur im hintergrund und nicht im Vordergrund, wenn ich die app auf dem iPhone?

Die CPU-und Speichernutzung ist das gleiche in Vorder-oder hintergrund ist es über 130% und 16 MB.

Die app getötet wird, nach 2:40

IOS bluetooth app
IOS bluetooth app

  • Dies ist, da Ihre Anwendung zu viel Speicher im hintergrund, so dass das Betriebssystem tötet die Anwendung.
  • Aber warum ist es nur passiert, in den hintergrund-Modus? Und 16 MB sind nicht viel, nicht wahr?
  • Von meinem Verständnis, eine Anwendung im Vordergrund hat mehr Speicher zugeteilt, um die Anwendung als auch die Anwendung in den hintergrund. Entsprechend dem Betriebssystem, das eine Menge von Speicher für eine Anwendung in den hintergrund. Haben Sie keinen code, den Sie könnte uns zeigen, wie der hintergrund Aufgaben?
  • Auch 130% CPU ist ziemlich hoch für eine Vordergrund-task, geschweige denn eine hintergrund-Aufgabe angesichts der Tatsache, dass Sie tun sollten, Bluetooth-IO-dies bedeutet, dass Sie einige andere CPU-gebunden-loop - Karte code oder Instrumente zu identifizieren, mit denen Ihre app, Zeit zu verbringen.
  • Hinzugefügt habe ich ein Bild drucken, auf meine Frage was zeigt die Speicher-und CPU-Auslastung. Ich habe eine sehr komplexe 2d-Grafik, die zur Laufzeit erzeugt, die sehr CPU verbraucht. Ist, dass die Grafik auch im hintergrund generiert? Es scheint so? Vielleicht kann ich fügen Sie eine if-else-Anweisung, die nur erzeugt die Grafik, wenn die app im Vordergrund? Es ist nicht einfach, poste den code, da gibt es viele Dinge, die getan im hintergrund:
  • Die Herzfrequenz ist das Lesen von bluetooth-sensor, der die Grafik erzeugt wird (vielleicht auch im hintergrund?) und alle 10 Sek. einige Daten geschrieben, die core-Daten-Datenbank, die ich später verwenden Sie für eine Grafik für die trainings. Können Sie analysieren, etwas über das debugger-Grafik, die ich gepostet?
  • Nutzen Sie die Zeit-profiler in den Instrumenten - raywenderlich.com/23037/how-to-use-instruments-in-xcode, aber es klingt wie Sie müssen Ihren code, um bewusst sein, wenn es der hintergrund und stoppen Sie die rendering-Bild.
  • Vielen Dank an alle, die schnelle Antworten! Ich machte einen kurzen test und JA wenn ich halt Rendern des Bildes, wenn die app im hintergrund verhindert, dass meine app, getötet zu werden von IOS. Das bedeutet, dass signal 9 Kündigung wird auch von zu viel Speicherverbrauch!

InformationsquelleAutor Ing. Ron | 2015-04-11
Schreibe einen Kommentar