2013-11-28 24 views
4

当OS启动后台应用程序获取我所观察到的顺序是这样的如何确定是否启动应用程序时做背景提取

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

然后

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

didFinishLaunching我想确定是否启动应用程序来执行后台提取,因为我需要禁用某些功能来加速应用程序加载。 UIApplication不公开任何属性来确定这一点。

我注意到了UIApplication_applicationFlags它有isHandlingBackgroundContentFetch这是布尔值,它被设置为true来进行背景提取,但是它的内部@package并且不能被访问。

+0

你检查了你的设备日志吗? – thorb65

回答

8

对不起,这不是直接回答你的问题,但你可以通过在应用程序委托中的以下方法之间划分应用程序启动逻辑来实现相同的结果吗?

1)所共有的两个场景的任何应用程序启动逻辑进入内部的位置:

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

2)正常发射行为放在这里:

- (void)applicationDidBecomeActive:(UIApplication *)application 

3)背景提取发射行为到这里(减少#2中的内容):

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
+0

我最终做了同样的事情,你建议。 – Sohaib

相关问题