Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在iPhone睡眠时下载应用内购买_Objective C_Ios_Xcode_Ios4 - Fatal编程技术网

Objective c 在iPhone睡眠时下载应用内购买

Objective c 在iPhone睡眠时下载应用内购买,objective-c,ios,xcode,ios4,Objective C,Ios,Xcode,Ios4,我需要帮助,了解当用户在iPhone上睡觉或应用程序进入后台模式时,如何在我的应用程序中下载应用程序内的购买项目。有人有什么想法吗?在应用程序标识符背景:中使用ExpirationHandler定义BackgroundTask,如下所示: // ... UIBackgroundTaskIdentifier bti; // ... - (void)applicationDidEnterBackground:(UIApplication *)application { bti = [app

我需要帮助,了解当用户在iPhone上睡觉或应用程序进入后台模式时,如何在我的应用程序中下载应用程序内的购买项目。有人有什么想法吗?

应用程序标识符背景:中使用ExpirationHandler定义BackgroundTask,如下所示:

// ...
UIBackgroundTaskIdentifier bti;
// ...

- (void)applicationDidEnterBackground:(UIApplication *)application {
    bti = [application beginBackgroundTaskWithExpirationHandler:^{
        dispatch_async(dispatch_get_main_queue(), ^{
            if(bti != UIBackgroundTaskInvalid) {
                [application endBackgroundTask:bti];
                bti = UIBackgroundTaskInvalid;
            }
        });
    }];
    
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // DO or CONTINUE RESUMED DOWNLOAD HERE
        
        dispatch_async(dispatch_get_main_queue(), ^{
            if(bti != UIBackgroundTaskInvalid) {
                [application endBackgroundTask:bti];
                bti = UIBackgroundTaskInvalid;
            }
        });
    });
}
看看它是如何工作的下载我为你做的

git克隆

…然后按主页按钮触发应用程序标识符背景:


想法是将下载任务委托给另一个特权线程,并将应用程序保持在后台状态,而不是让操作系统挂起它。

bro在[application beginBackgroundTaskWithExpirationHandler:,,,,我是否应该在此处将应用程序更改为我的应用程序的名称