当OS启动应用程序进行后台获取时,我观察到的序列是
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
然后
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
在didFinishLaunching
我试图确定是否启动应用程序来执行后台提取,因为我需要禁用某些功能来加速应用程序加载。 UIApplication
不公开任何属性来确定这一点。
我注意到UIApplication
的{{1}}有_applicationFlags
布尔值,背景提取设置为true但是@package内部无法访问。
答案 0 :(得分:9)
很抱歉,这不是您问题的直接答案,但是您可以通过在应用代表中将以下方法之间的应用启动逻辑划分来实现相同的结果吗?
1)两个场景共有的任何应用启动逻辑都在这里:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2)正常的发布行为在这里:
- (void)applicationDidBecomeActive:(UIApplication *)application
3)后台获取启动行为在这里(#2中的缩小版本):
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler