1

プラットフォームとバージョン iOS iPhone 4s、iOS バージョン 5.1.1

問題の説明 アプリケーションがバックグラウンドに置かれると、約 20 分ごとに自動的にログオフ / 強制終了されます。私たちのアプリケーションでは、アプリがバックグラウンドに移動した場合にデータをアップロードする機能があります。このセクションをコメントアウトすると、アプリケーションは強制終了されなくなります。

アプリケーションは、アクティビティやユーザーの介入がなく、バックグラウンドで待機している場合でも、ログオフ (オペレーティング システムによって強制終了) されます。

再現手順 バックグラウンドで添付ファイルをアップロードしているコード スニペットを以下に示します。

 -(void) endTaskWidthIdentifier:(NSNumber *)paramIdentifier{
    UIBackgroundTaskIdentifier identifier = [paramIdentifier integerValue];
    [[UIApplication sharedApplication] endBackgroundTask:identifier]; }

 - (void)applicationDidEnterBackground:(UIApplication *)application {
        backgroundTaskIdentifier = [application 
 beginBackgroundTaskWithExpirationHandler:^{
        NSNumber *backgroundTask = [NSNumber 
 numberWithInteger:backgroundTaskIdentifier];
        [self 
 performSelectorOnMainThread:@selector(endTaskWidthIdentifier:)
 withObject:backgroundTask waitUntilDone:YES];
        backgroundTaskIdentifier = UIBackgroundTaskInvalid;
    }];
 }

このコードが実行されると、ユーザーの介入なしでバックグラウンドに保持されている場合、アプリケーションは 15 ~ 20 分後にログアウトします。

このコードにコメントすると、アプリケーションはバックグラウンドにとどまり、終了せず、一時停止モードのままになります。

質問:

このコードの何が問題なのですか。このコードは何をすべきではないのですか?

4

0 に答える 0