2

データを同期する iOS アプリを作成しています。アプリがバックグラウンドにあるときにも同期サービスを実行する必要があります。そこで、データをアップロードする場所にこのコードを書きました。

 - (void)startAsyncUpload {
UIApplication *thisApplication = [UIApplication sharedApplication];

if([thisApplication respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) {
    bgTaskIdentifier_ = [thisApplication beginBackgroundTaskWithExpirationHandler:^(void)
                         {
                             [thisApplication endBackgroundTask:bgTaskIdentifier_];
                             bgTaskIdentifier_ = UIBackgroundTaskInvalid;
                         }];
}

[self multipartUpload];}

正常に動作し、バックグラウンドで実行されます。しかし、ここで問題があります。動画ファイルをアップロードしていて、バックグラウンド時間が切れたときにハンドラーが呼び出され、タスクが終了しました。再びフォアグラウンドに戻ると、アップロードが再開されました。しかし、再びバックグラウンドに戻ったときに、バックグラウンド タスクが再開されません。

基本的に、以前にタスクを終了したため、その理由はわかっています。しかし、バックグラウンド実行のためにタスクを再度登録するなど、タスクを再開する方法はありますか?

4

1 に答える 1