2011-01-16 5 views
-1

Die "applicationDidFinishLaunchingWithOptions:" Nachricht wird nicht aufgerufen, wenn eine Anwendung im Hintergrund in iOS 4 sitzt, und ich versuche herauszufinden, wie benachrichtigt werden, wenn die Anwendung wird durch eine andere Anwendung wieder in den Vordergrund gebracht.iPhone SDK Datei Handler mit iOS 4 Hintergrund Prozesse

Meine Anwendung registriert sich als Handler für bestimmte Dateitypen, und Safari und andere unterstützte Anwendungen ermöglichen die Übergabe der Dateien an meine App. Das funktioniert großartig, wenn die App geschlossen wird, bevor ich versuche, sie zu verwenden, aber ansonsten fehlschlägt.

In meiner Anwendung: applicationDidFinishLaunchingWithOptions: Ich habe:

NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey]; 
if([url isFileURL]) { 
} 
[self.window makeKeyAndVisible]; 
return YES; 

Wie bereits erwähnt, dies die App für das Starten große bisher funktioniert, wenn es nicht im Hintergrund sitzt - aber wenn ich Umschalten auf Safari zurück oder Mail und versuchen, eine neue Datei zu öffnen, die unterstützt wird, wacht meine Anwendung aus dem Hintergrund und wird wieder aktiv, aber ich kann keine "withOptions" überschreiben für die Anwendung: applicationWillEnterForeground: oder eine Möglichkeit zu identifizieren, was wann übergeben wurde tritt in den Vordergrund.

Was wäre der geeignete Weg, diese "Open File Notifications" zu erhalten, wenn die Anwendung im Hintergrund läuft?

+0

-1 für eine verwirrende Frage. Ihr erster Satz fragt, ob Sie benachrichtigt werden, wenn "die Anwendung wieder in den Vordergrund gebracht wird". Anschließend fragen Sie nach, ob Sie im Hintergrund Benachrichtigungen über geöffnete Dateien erhalten möchten. Sie haben dann selbst darauf geantwortet und NSResponder beschimpft. –

Antwort

1

Erscheint zu erhalten, dass die Anwendung mit: openURL: sourceApplication: Anmerkung: die auf den Empfang dieser Benachrichtigungen besserer Ansatz ist. Es wird aufgerufen, wenn die Anwendung zum ersten Mal gestartet wird und wenn sie auch wieder aktiv wird.

Ich habe meine Anwendung verschoben: applicationDidFinishLoadingWithOptions: Code in Anwendung: openURL: sourceApplication: Annotation: für die Behandlung der Datei an die Anwendung übergeben, und es funktioniert in allen Fällen jetzt.

0

benachrichtigt zu werden, wenn die App App im Vordergrund stehen, registrieren ein Objekt UIApplicationDidBecomeActiveNotification

+0

die Frage war, wie man von 'offenen Dateibenachrichtigungen' in einem inaktiven/Hintergrundzustand benachrichtigt wird - bitte lesen Sie die Frage erneut. –

+0

NSReponder beantwortete den ersten Teil Ihrer Frage im ursprünglichen Post. –

Verwandte Themen