問題タブ [ios-background-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1074 参照

ios - didEnterBackground が呼び出された後、メインスレッドで何かを実行することは可能ですか?

まず最初に、私の質問がダミーだと思われる場合に備えて申し訳ありません。私は iOS とマルチスレッドが初めてで、物事がどのように進んでいるかを理解したいだけです。私が知る限りdidEnterBackground、アプリが一時停止する前に iOS が呼び出す最後の関数であり、アプリがそこから戻るまでに約 5 秒かかります。それ以外の場合、iOS はアプリを強制終了します。私は現在、そのような状況について考えています-バックグラウンドスレッド(ネットワークダウンロードなど)で発生しているタスクがあり、その完了ブロックはメインスレッドで発生します。このような

downloadData()が現在バックグラウンド スレッドで実行されている場合、ユーザーがホーム ボタンをタップすると、アプリがバックグラウンドに移行してdidEnterBackground呼び出されます。メイン スレッドがコードを実行している間、didEnterBackground downloadDataダウンロードが完了し、その完了が呼び出され、新しいタスクがメイン スレッド キューにプッシュされます。では、この場合はどうなるでしょうか?のコードdidEnterBackgroundは中断前に実行できる最後のコードであるため、 の完了ブロックに何が起こるかは、downloadData中断の前 ( の後didEnterBackground) にも実行されるか、ユーザーがアプリに戻ったときに実行されるか、または廃棄されますか?または、この状況はまったくあり得ませんか? ご協力いただきありがとうございます。また、私の質問が間違っていたら申し訳ありません。