2010-12-16 12 views
0

タスクの完了 - アプリケーションは、特定のタスクを完了するための余分な時間をシステムに求めることができます。私は、タスク完了のために、この方法を使用していますタスク完了の実装方法

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    UIApplication *app = [UIApplication sharedApplication]; 
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^ 
    { 
     NSLog(@"This is Testing"); 

     [app endBackgroundTask:bgTask]; 

     bgTask=UIBackgroundTaskInvalid; 
    }]; 
} 

しかし、私はこの方法から任意の出力を取得しておりません。誰でも、私が間違っていることを教えてください。タスクの完了のために実装するための最善の方法を教えてください。

よろしく、

Arunkumar.P

答えて

1

あなたは有効期限のハンドラを設定されていますが、実際には、バックグラウンドで何かをやっているように見えません。上記のコードは、iOSアプリのプログラミングガイドのExecuting Code in the Backgroundセクションからコピーされたようです。そのexxample内のコードの次の部分は次のとおりです。

// Start the long-running task and return immediately. 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

    // Do the work associated with the task. 

    [app endBackgroundTask:bgTask]; 
    bgTask = UIBackgroundTaskInvalid; 
}); 

制限時間(10分、私がチェックした最後の時間)が到達するまでの有効期限ハンドラが呼び出されません。有効期限ハンドラではなく、非同期にディスパッチするタスクで作業を行います。

0

これは私の問題を解決しました:Easy Background Tasks In IOS 4

主なアイデアは、何もしない非同期実行コードをディスパッチすることですが、現在のコードを実行し続けることができます。

あなたもそれを解決することを願っています!

+0

リンクが切れています。これが問題を要約する理由です。ソリューションの要点を得るために回答を編集してください。それは確かにこの答えをより有用にするでしょう。 –

関連する問題