每次我的应用程序启动时(无论是冷启动还是后台启动)我想让它做一些事情,我该如何做到这一点?

Dou*_*ith 4 objective-c ios ios5 ios6

我希望每次应用程序启动时都会检查剪贴板中是否有URL,如果是,请使用它执行某些操作.无论何时应用程序启动,我都可以触发哪种方法,无论是从冷启动(例如在后台杀死),还是按下主页按钮,复制URL并重新启动.

这是其中之一吗?

 - (void)applicationDidBecomeActive:(UIApplication *)application
 - (void)applicationWillEnterForeground:(UIApplication *)application
 - (void)applicationDidBecomeActive
 - (void)applicationDidFinishLaunching:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

困惑.

dav*_*281 14

正如@rmaddy所说,启动应用程序后使用的正确方法是applicationWillEnterForeground:来自您的应用代表.当用户跳回来时,将调用此方法,但在其他情况下,您不需要响应(例如,用户接收文本消息并将其解除).

然而,从我的测试中,applicationWillEnterForeground:不是当一个应用程序从冷启动了名为; 你应该抓住它applicationDidFinishLaunchingWithOptions:.

所以,基本上,你的app委托应该包含这样的代码:

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

    [self checkForURL];
    ...
}


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

       [self checkForURL];
       ...
}

- (void)checkForURL{
    //code for checking for URL goes here
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.