찾다

 >  Q&A  >  본문

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

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

PHPzPHPz2772일 전848

모든 응답(5)나는 대답할 것이다

  • 大家讲道理

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

    Activity가 소멸되면 네트워크 요청을 취소해야 합니다. 예를 들어 Volley는 일반적으로 onStop()에서 VolleyRequest.cancelPendingRequests(tagName);

    을 호출합니다.

    회신하다
    0
  • 巴扎黑

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

    기타는 확실하지 않습니다. Volley에 대해서는 취소 방법을 사용해도 네트워크 요청이 중단되지 않습니다. 콜백 수행 사실 네트워크 요청은 백그라운드 스레드이고 시간 초과 제한이 있으므로 네트워크 요청이 중지되지 않더라도 영향은 크지 않습니다. 라이프 사이클이 끝난 후에 호출되므로 Activity이 완료되면 요청을 취소해야 합니다.

    회신하다
    0
  • 怪我咯

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

    네트워크 요청은 새로 열리는 스레드입니다. 일반적으로 메인 스레드의 소멸은 거의 영향을 미치지 않습니다. 핵심은 일반적으로 메인 스레드에서 작업을 수행하지만 이때는 메인 스레드가 완료되었습니다. 의해 파괴됨. 따라서 취소를 수동으로 처리해야 합니다.

    회신하다
    0
  • 巴扎黑

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

    일반적인 상황에서는 Activity가 소멸된 후에도 Retrofit 작업이 계속됩니다. 콜백 수신 여부만 선택할 수 있습니다.

    회신하다
    0
  • 迷茫

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

    당연히 직접 취소하셔야 합니다

    회신하다
    0
  • 취소회신하다