2017-09-25 27 views
0

iOSでバックグラウンドフェッチを行うためにPerformFetchに関数があるとします。Xamarin iOS:バックグラウンドフェッチで呼び出された有効期限切れのハンドラが呼び出されたときに最後に呼び出されます

PerformFetchの中に「finally」ステートメントがあります。バックグラウンドフェッチが期限切れになると、finallyブロックも呼び出しを取得します。 それとも、OSによって殺さ適用前にクリーンアップを行うにExpirationHandlerブロックに直進します

答えて

0

PerformFetchapplication:performFetchWithCompletionHandler:)は、そのメソッドまたはそれと返すために〜30秒を持ってバックグラウンドで呼び出された場合プロセスは終了する。終了した場合

は、あなたのコードは、あなたのPerformFetchオーバーライドしてfinallyブロックに入ることはありません、またWillTerminateapplicationWillTerminate:)が呼び出されます。 PerformFetchが返されなかったため、これはiOSによってUIBackgroundFetchResult.Failedとして処理されます。

あなたがPerformFetchBeginBackgroundTaskbeginBackgroundTaskWithName:expirationHandler:)を経由して、コードのいくつかのブロックの開始をフラグが立てられた場合はい、OSはPerformFetchを終了するときexpirationHandlerが呼び出されます。

関連する問題