0
ユーザが自分のiPhoneをスリープ状態にしたとき、またはアプリケーションがバックグラウンドモードに入ったときに、アプリケーション内のアプリ内購入アイテムをダウンロードする方法についてのヘルプが必要です。誰にもアイデアはありますか?iPhoneがスリープ状態のときにアプリ内購入をダウンロードし続ける
ユーザが自分のiPhoneをスリープ状態にしたとき、またはアプリケーションがバックグラウンドモードに入ったときに、アプリケーション内のアプリ内購入アイテムをダウンロードする方法についてのヘルプが必要です。誰にもアイデアはありますか?iPhoneがスリープ状態のときにアプリ内購入をダウンロードし続ける
applicationDidEnterBackgroundにBackgroundTaskWithExpirationHandlerを定義します。このような:
// ...
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;
}
});
});
}
をそれは私があなたのために作られたダウンロードsample projectをどのように機能するかを確認するには。
gitのクローンgitの ://github.com/jacekmigacz/BTWEH.git
...とapplicationDidEnterBackgroundトリガするホームボタンを押してください:を。
ダウンロードタスクを別の権限のあるスレッドに委任し、OSに中断させる代わりにアプリケーションをバックグラウンドの状態に保つことをお勧めします。
ありがとう、あなたロック;) –
bro [application beginBackgroundTaskWithExpirationHandler:,,,,,私はここに私のアプリケーションの名前にAPPLICATIONを変更する必要があります –