GOOGLE ADS

Dienstag, 12. April 2022

Verstehen des Uber-Startbildschirm-Reporter-Codes

Lösung des Problems

Wenn Sie den bereitgestellten Code im Github-Link sehen, wird der startupReasonReporter.startupReasonbasierend auf den previousRunInfoDaten aktualisiert, wenn er mit startupReasonReporterinstanziiert wird (oder in Ihrem Fall), wenn die App das nächste Mal ausgeführt wird.initWithPreviousRunDidCrashpreviousRunInforunInfo

Sie müssen die folgende öffentliche Methode verwenden, um die runInfoInstanz zu erhalten, die ist

/**
* Returns the prior run information stored to disk at the given directory URL.
* @param directoryURL The directory to use to to store the startup reason data.
* @return the previous startup reason data if it was present on disk, or empty startup reason object.
*/
+ (nonnull instancetype)priorRunAtDirectoryURL:(nullable NSURL *)directoryURL;

Die Art und Weise, wie Sie initialisieren runInfo, scheint falsch zu sein. Sie müssen etwas wie folgt tun:

id<UBApplicationStartupReasonReporterPriorRunInfoProtocol> runInfo = [[UBApplicationStartupReasonReporterPriorRunInfo] alloc] priorRunAtDirectoryURL:<yourDirectoryURL>];

Diese Delegaten aktualisieren bei jedem Aufruf nur die für die aktuelle Ausführung, die in einer Datei im Verzeichnis gespeichert wird, das Sie im obigen Aufruf angegeben haben applicationDidBecomeActive, applicationWillResignActiveund die Daten werden aus dieser Datei abgerufen, wenn die App das nächste Mal ausgeführt wird.applicationWillTerminaterunInfo<yourDirectoryURL>startupReasonReporter.startupReason

Jedes Mal, wenn Sie die App ausführen, werden die vorherigen Laufdaten abgerufen und startupReasonReporter.startupReasonbasierend auf den verfügbaren Daten in eingestelltpreviousRunInfo

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...