iOS Background Task 遇到的问题

2020-04-27  本文已影响0人  某非著名程序员

Background Task 这种方式,就是系统提供了 beginBackgroundTaskWithExpirationHandler 方法来延长后台执行时间,可以解决你退后台后还需要一些时间去处理一些任务的诉求。但在使用时碰到一些问题:

  1. 如果是debug调试状态,你会发现程序退到后台,任务会一直在执行。
    测试后台执行时间时,不能是调试状态。必须断开xcode
  2. beginBackgroundTaskWithExpirationHandler与endBackgroundTask是成对出现的。如果不成对出现,5s app会被杀掉。
  3. 正确写法:yourTask应该放在beginBackgroundTaskWithExpirationHandler前调用,而不是block块
    [self yourTaskWithApplication:application];
    self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
    [application endBackgroundTask:self.backgroundTaskIdentifier];
    self.backgroundTaskIdentifier = UIBackgroundTaskInvalid;
    }];
  4. 我们可以借助 控制台 来判断app是否还在执行,日志是否还在打印。
上一篇下一篇

猜你喜欢

热点阅读