繁体   English   中英

如何确定是否启动应用程序以执行后台提取

[英]How to determine if application is launched to do Background Fetch

当OS启动应用程序进行后台获取时,我观察到的序列就是这个

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

接着

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

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

我注意到UIApplication_applicationFlags ,它有isHandlingBackgroundContentFetch布尔值,对于后台提取设置为true,但是它在@package里面并且无法访问。

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

1)这两个场景共有的任何应用启动逻辑都在这里:

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

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

- (void)applicationDidBecomeActive:(UIApplication *)application

3)后台获取启动行为在这里(#2中的缩小版本):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM