検索

ホームページ  >  に質問  >  本文

android - 像volley、okhttp、retrofit这样的网络请求框架,当Activity销毁时,他们网络会自动取消

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

PHPzPHPz2772日前850

全員に返信(5)返信します

  • 大家讲道理

    大家讲道理2017-04-17 17:50:38

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

    を呼び出します。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:50:38

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 17:50:38

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:50:38

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

    返事
    0
  • 迷茫

    迷茫2017-04-17 17:50:38

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

    返事
    0
  • キャンセル返事