4

我想在应用程序每次启动时检查剪贴板中是否有 URL,如果有,请对其进行处理。每当应用程序启动时,我可以覆盖哪个方法触发,无论是从冷启动(例如它在后台被杀死)还是我只是按下主页按钮,复制一个 URL 并跳回。

是其中之一吗?

 - (void)applicationDidBecomeActive:(UIApplication *)application
 - (void)applicationWillEnterForeground:(UIApplication *)application
 - (void)applicationDidBecomeActive
 - (void)applicationDidFinishLaunching:(UIApplication *)application

使困惑。

4

4 回答 4

14

正如@rmaddy 所说,应用程序启动后使用的正确方法applicationWillEnterForeground:来自您的应用程序委托。这个方法会在用户跳转回来的时候被调用,但是在你不需要响应的其他情况下(比如用户收到一条短信并关闭它)不会被调用。

但是,根据我的测试,从冷启动应用程序时applicationWillEnterForeground:不会调用;你应该抓住它applicationDidFinishLaunchingWithOptions:

因此,基本上,您的应用程序委托应包含如下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [self checkForURL];
    ...
}


- (void)applicationWillEnterForeground:(UIApplication *)application {

       [self checkForURL];
       ...
}

- (void)checkForURL{
    //code for checking for URL goes here
}

希望有帮助。

于 2013-06-09T04:06:05.020 回答
0

- (void)applicationDidBecomeActive当应用程序启动或从后台变为活动状态时调用。

该文档很好地解释了一切:http: //developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

于 2013-03-27T01:31:06.743 回答
0

在您的应用程序委托中,将其添加到其他答案建议的方法中(applicationDidFinishLaunchingWithOptions:)。在您的根视图控制器中注册以下通知。一旦您的应用程序已经开始运行,它将始终在启动时调用。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bringingItBack)      name:UIApplicationWillEnterForegroundNotification object:nil];

这将涵盖应用程序启动时的实例以及您刚刚将其从后台恢复时的实例。

于 2013-06-09T04:29:21.863 回答
0

参考UIApplicationDelegate协议,应用启动的处理可以通过 2 种方法来处理:

  • application:willFinishLaunchingWithOptions:
  • application:didFinishLaunchingWithOptions:

并且可以借助以下方法处理从后台启动应用程序: applicationDidBecomeActive:

基于上述调用,您可以处理您的应用程序。

于 2013-03-27T01:35:19.933 回答