android - 像volley、okhttp、retrofit这样的网络请求框架,当Activity销毁时,他们网络会自动取消
PHPz
PHPz 2017-04-17 17:48:38
0
5
889

比如,AsynaTask生命周期就需要考虑,与Activity生命周期不一致。

PHPz
PHPz

学习是最好的投资!

全員に返信(5)
大家讲道理

アクティビティが破棄されると、ネットワーク リクエストをキャンセルする必要があります。たとえば、Volley は通常、onStop() で VolleyRequest.cancelPendingRequests(tagName);

を呼び出します。
いいねを押す +0
巴扎黑

その他は不明です。Volleyに関しては、cancelメソッドを使用してもネットワークリクエストは停止されません。だけではキャンセルされません。実際、ネットワーク リクエストはバックグラウンド スレッドであり、タイムアウト制限があるため、ネットワーク リクエストが停止しなくても、影響は大きくありません。重要なのは、コールバック メソッドが実行できないことです。ライフサイクルが終了した後に呼び出されるため、 が終了したときにリクエストをキャンセルする必要があります。

いいねを押す +0
刘奇

ネットワーク リクエストは新しく開かれたスレッドです。通常、メイン スレッドの破棄はほとんど影響しません。通常はメイン スレッドで何かを実行しますが、この時点ではメイン スレッドが削除されています。破壊されました。したがって、キャンセルを手動で処理する必要があります。

いいねを押す +0
巴扎黑

通常、Retrofit タスクはアクティビティが破棄された後も続行されます。選択できるのはコールバックを受信するかどうかだけです。

いいねを押す +0
迷茫

当然、ご自身でキャンセルする必要があります

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート