0

私はIOS7を使用しています

ダウンロードを開始して画面をロックし、画面を開きます。私のプログラムはシャットダウンされています...

私を助けることができる人はいますか?

これは主要なコードです:

初期ダウンロード URL:

NSURL *url = [NSURL URLWithString:dictionaryUrl];


ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];

ASIHTTPRequest デリゲートを設定します。

request.delegate = self;

初期化ファイルの保存パス:

NSString *savePath = [path stringByAppendingPathComponent:name];

bool b=[ fileManager createFileAtPath :savePath contents : nil attributes : nil ];
if (b){
    fileHandle=[ NSFileHandle fileHandleForWritingAtPath :savePath];
}

[request setAllowResumeForFileDownloads:NO];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];

[request setDataReceivedBlock :^( NSData * data){
    [fileHandle seekToEndOfFile ];
    [fileHandle writeData :data];
    [ label setText :[ NSString stringWithFormat : @"downloading...%.1f %%" , process . progress * 100 ]];

}];

[request setDownloadProgressDelegate:process];

ASINetworkQueue に追加:

[self.netWorkQueue addOperation:request];

リリース要求:

[request release];
4

2 に答える 2

1

まず、リクエストをバックグラウンドで実行できるようにする必要があります。これを追加 :

[request setShouldContinueWhenAppEntersBackground:YES];

迅速な作業が可能で、魅力のように機能します。ただし、長時間実行されるタスクの場合は、必要に応じてダウンロードを続行するには、少しコードを追加して、実行時間が長すぎるためにこの要求が終了しないようにする必要があります。

タイマーを追加し、x 秒ごとに無期限に API を起動することで、位置情報の更新に関する質問に答えました。とを使用UIBackgroundTaskIdentifierNSTimerます。これはあなたにアイデアを与えるはずです。あなたがしていることと同じ概念でなければなりません。

iOS アプリケーションで n 分ごとにバックグラウンドで位置情報を更新するにはどうすればよいですか?

于 2013-10-20T07:57:52.267 に答える