0

アプリがバックグラウンドに留まる時間を設定できるようにしようとしています。アプリが閉じられるまで、バックグラウンドでアクティブな状態を維持できる時間を制御できるようにしたいと考えています。バックグラウンドで実行するかどうかを切り替えるスイッチである bool を使用して、それを設定できる Info.plist に追加できるものはありますか?

Apple がアプリを 10 分以上バックグラウンドにとどめることを許可していないことを読み、発見しましたが、いくつかのテストを行ったところ、私のものに似た他のライブ アプリが 10 分以上持続することがわかりました。10分前にタイマーを設定してリセットすることでこれを回避する古い投稿も見つけましたが、これはiOS7で引き続き機能し、Appleはまだそれを受け入れますか?

4

1 に答える 1

3

編集:質問を誤解しました。これが可能な代替手段です。

- (void)applicationDidEnterBackground:(UIApplication *)アプリケーション{
      UIApplication* app = [UIApplication sharedApplication];
      task = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:タスク];
        タスク = UIBackgroundTaskInvalid;
    }];
    // 長時間実行タスクを開始し、すぐに戻ります。
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // タスクに関連付けられた作業を行います。
        NSLog(@"Started background task timeremaining = %f", [app backgroundTimeRemaining]);
        // NSUserdefaults の時間を節約
        [[NSUserdefaults standardUserDefaults] setObject:[NSDate 日付] objectForKey@"startDate"];

        [app endBackgroundTask:タスク];
        タスク = UIBackgroundTaskInvalid;
    });

}

- (void)applicationWillTerminate:(UIApplication *)アプリケーション{
    [[NSUserdefaults standardUserDefaults] setObject:[NSDate 日付] objectForKey@"terminateDate"];
}

-(void)applicationDidFinishLaunching:(UIApplication)application{
   // 開始時刻を取得して終了時刻を取得し、差分を取る
   NSDate* temporaryDate1 = (NSDate*)[userDefaults objectForKey:@"startDate"];
   NSDate* temporaryDate2 = (NSDate*)[userDefaults objectForKey:@"terminateDate"];
   比較[一時的な日付1、一時的な日付2];
}

これは、NSDate インスタンスを比較する方法を確認するためのリンクです。

于 2013-10-08T17:26:37.447 に答える