我希望每次应用启动时都会检查剪贴板中是否有URL,如果是,请使用它执行某些操作。无论何时应用程序启动,我都可以触发哪种方法,无论是从冷启动(例如在后台杀死),还是只按主页按钮,复制URL并重新启动。
这是其中之一吗?
- (void)applicationDidBecomeActive:(UIApplication *)application
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationDidBecomeActive
- (void)applicationDidFinishLaunching:(UIApplication *)application
混淆。
答案 0 :(得分: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
}
希望有所帮助。
答案 1 :(得分:1)
- (void)applicationDidBecomeActive
。
答案 2 :(得分:0)
参考UIApplicationDelegate协议,可以用两种方法处理app启动的处理:
application:willFinishLaunchingWithOptions:
application:didFinishLaunchingWithOptions:
可以使用以下方法处理从后台启动应用程序:
applicationDidBecomeActive:
根据上述电话,您可以处理您的申请。
答案 3 :(得分:0)
在您的应用委托中,将其添加到其他答案建议的方法(applicationDidFinishLaunchingWithOptions :)。在根视图控制器中注册以下通知。当应用程序在已经开始运行后启动时,将始终调用此方法。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bringingItBack) name:UIApplicationWillEnterForegroundNotification object:nil];
这将涵盖应用启动时以及刚刚从后台恢复时的实例。