具有iOS 4后台进程的iPhone SDK文件处理程序

时间:2011-01-16 20:52:43

标签: objective-c ios4

当应用程序位于iOS 4的后台时,不会调用“application:applicationDidFinishLaunchingWithOptions:”消息,而我正试图找出当应用程序被另一个应用程序带回到前台时如何通知应用

我的应用程序将自身注册为某些文件类型的处理程序,Safari和其他受支持的应用程序允许将文件传递到我的应用程序。如果应用程序在我尝试使用之前关闭,这种方法很有效,但是否则会失败。

在我的应用程序中:applicationDidFinishLaunchingWithOptions:我有:

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

如上所述,到目前为止,当它不在后台时启动应用程序时效果很好 - 但是当我切换回Safari或Mail并尝试打开支持的新文件时,我的应用程序从后台并再次变为活动状态,但我看不到应用程序的任何“withOptions”覆盖:applicationWillEnterForeground:或任何方式来识别进入前台时传入的内容。

当应用程序在后台时,接收这些“打开文件通知”的适当方法是什么?

2 个答案:

答案 0 :(得分:1)

显示使用应用程序:openURL:sourceApplication:annotation:是接收这些通知的更好方法。当应用程序第一次启动时,以及当它再次变为活动状态时调用它。

我已经移动了我的应用程序:applicationDidFinishLoadingWithOptions:代码到应用程序:openURL:sourceApplication:annotation:用于处理传递给应用程序的文件,现在它适用于所有情况。

答案 1 :(得分:0)

要在您的应用成为前台应用时收到通知,请注册一些对象以接收UIApplicationDidBecomeActiveNotification