2014-03-25 8 views
0

장기 실행 HTTP 요청 (최소 100MB의 데이터 파일 업로드 예제)을 취소 할 수있는보다 완벽한 라이브러리를 찾고 있습니다.Android에서 장기 실행 HTTP 요청 취소 처리

취소 API를 제공하는 Volley를 보았지만 콜백을 호출하지 않고 실제로 실행을 중지하지 않는 것 같습니다 (장기 실행 요청에는 권장하지 않습니다).

저는 ION https://github.com/koush/ion을 보았습니다.이 핸드는 취소 할 수있는 미래의 작업을 반환하기 때문에 취소를 처리 할 수 ​​있지만, 내 경우에는 올바른 선택인지는 잘 모릅니다. 요청을 병렬로 실행하지 않고 순서대로 실행하려고합니다.

저는 오랫동안 지금까지 사용해 오던 훌륭한 라이브러리를 작성했습니다 (https://github.com/darko1002001/android-rest-client). 일부 경우에는 요청 취소 및 진행 업데이트에 적합한 몇 가지 해결 방법을 수행했습니다. 나는 가지고 있었다. 그러나 솔직히 말해서 나는 그것이 정말로이 요구 사항에 대해 깨끗하고 강하다고 느끼지 않는다.

일반적으로 요청 실행에는 스레드 풀을 사용하지만 단일 스레드 풀 대기열에서 장시간 실행되는 요청을 이동시켜 다른 짧은 요청이 차단되지 않고 계속 실행되도록합니다. 장기 실행 요청에 대해 순차적으로 자체 요청 실행을 관리해야하는 경우 내 해결 방법이 더 좋습니다.

누군가 이러한 기능을 제작 한 경험을 공유 할 수 있습니까? 사용할 제안에 대한 제안이나 권장 사항은 무엇입니까?

+0

HTTP에서 자세히를 찾을 수 있습니다 : //loopj.com/android-async-http/ – r4jiv007

+0

하지만 취소를 지원하지 않습니까? 그거야? 그것의 어떤 예? – DArkO

답변

1

다운로드의 경우 Android Download Manager을 사용해보십시오. 그것은 사용하기 쉽고 사용자는 언제든지 취소 할 수 있습니다.

업로드의 경우 Wakefull Service을 사용하여 직접 업로드 할 수 있습니다. HTTP 업로드는 극적으로 복잡하지 않으므로이 문제를 해결할 것입니다. Android 버전에 따라 Apache HTTP lib (2.3.3 이전) 또는 HTTPUrlconnection (모든 최신 버전)을 사용하십시오. 또한 volley code 오픈 소스가 있습니다 당신은 자신의 업로드 로직 (또는 그 부품) : 나는이 방법을 취소 지원 AsyncHttpClient

을 사용하고있다

+0

업로드해야합니다 + 다운로드 – DArkO

+0

아, 그 부분을 놓쳤습니다. 나는 그것에게 약간 생각을 줄 것이다. – meredrica

+0

내 답글을 수정했습니다. 아마도 도움이됩니다. – meredrica