【问题标题】:Background downloading even if the phone gets locked即使手机被锁定也可以后台下载
【发布时间】:2012-01-07 20:19:16
【问题描述】:

我正在尝试为 iPhone 实现一个应用程序,该应用程序应该只是从网络上下载一些内容。这个下载量很大,所以我将下载实现为后台任务,让用户有机会在下载时用手机做一些其他事情。我的问题是,如果用户按下锁定按钮(或者如果自动锁定启动),则调用 AppDelegate 中的 applicationWillResignActive: 并在大约十秒钟后中止下载,因为手机没有进入后台并且只是保持非活动状态。

我的问题是我做错了什么?即使手机被锁定,如何确保继续下载?

提前致谢。

【问题讨论】:

  • 您需要向我们展示您的代码。

标签: iphone background multitasking


【解决方案1】:

你需要像这样用后台任务块包围下载代码:

UIApplication* app = [UIApplication sharedApplication];
        UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
            //here you need to finish what you are doing evven if you've not finished yet, otherwise your app will be killed
            [app endBackgroundTask:bgTask];
        }];

        //here comes your downloading code

        [app endBackgroundTask:bgTask];

这将给你 10 分钟(根据其他一些帖子)在后台执行代码...

【讨论】:

  • 这正是我所做的,当我通过主页按钮将应用程序发送到后台时,它工作得非常好。但是当我在应用程序处于前台时按下锁定按钮时,它只是处于非活动状态(applicationWillResignActive: 被调用)但不会发送到后台。因此后台任务没有被处理...
  • 那你可以试试这个方法:blog.marcopeluso.com/2009/08/23/… 但是不知道效果好不好,会不会被苹果认可...
  • 酷!我很高兴它运作良好。让我们知道批准问题:)
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多