問題タブ [ios-multithreading]
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.
ios - didEnterBackground が呼び出された後、メインスレッドで何かを実行することは可能ですか?
まず最初に、私の質問がダミーだと思われる場合に備えて申し訳ありません。私は iOS とマルチスレッドが初めてで、物事がどのように進んでいるかを理解したいだけです。私が知る限りdidEnterBackground
、アプリが一時停止する前に iOS が呼び出す最後の関数であり、アプリがそこから戻るまでに約 5 秒かかります。それ以外の場合、iOS はアプリを強制終了します。私は現在、そのような状況について考えています-バックグラウンドスレッド(ネットワークダウンロードなど)で発生しているタスクがあり、その完了ブロックはメインスレッドで発生します。このような
downloadData()
が現在バックグラウンド スレッドで実行されている場合、ユーザーがホーム ボタンをタップすると、アプリがバックグラウンドに移行してdidEnterBackground
呼び出されます。メイン スレッドがコードを実行している間、didEnterBackground
downloadData
ダウンロードが完了し、その完了が呼び出され、新しいタスクがメイン スレッド キューにプッシュされます。では、この場合はどうなるでしょうか?のコードdidEnterBackground
は中断前に実行できる最後のコードであるため、 の完了ブロックに何が起こるかは、downloadData
中断の前 ( の後didEnterBackground
) にも実行されるか、ユーザーがアプリに戻ったときに実行されるか、または廃棄されますか?または、この状況はまったくあり得ませんか? ご協力いただきありがとうございます。また、私の質問が間違っていたら申し訳ありません。
ios - iOS と ObjC では、weakSelf は _常に_ 必要ではありませんよね?
同僚とのちょっとした口論を解決するのを手伝ってください。この状況では、弱い自己は必要ありませんよね?
(彼は私を信じていません)