我知道如何使用.disconnect()方法斷開HTTPURLConnection。但是URLConnection對象呢? Myy應用程序通過URLConnection.getInputStream從服務器直接鏈接下載文件。下載進度有一個停止按鈕。當用戶觸摸停止時,我想停止下載。感謝您的回答。Android如何斷開URLConnection
0
A
回答
1
如果您正在使用URLConnection.getInputStream(),那麼你下載的代碼可能類似於如下:
InputStream fileInputStream; // initialized
// ...
byte[] buffer = new byte[1024 * 32];
int len;
int totalLen = 0;
while ((len = fileInputStream.read(buffer)) != -1) {
fstream.write(buffer, 0, len);
totalLen += len;
}
因此,停止此下載,你應該打破這種循環一旦某個條件爲真,一種方式是使用的AtomicBoolean,因爲多數時候仍設置在UI線程同時下載是在工作線程:
// in your download class
AtomicBoolean abort = new AtomicBoolean(false);
// Updated loop
while ((len = fileInputStream.read(buffer)) != -1) {
if (abort.get()) {
// do any necessary cleanup like closing streams
break;
}
fstream.write(buffer, 0, len);
totalLen += len;
}
然後在點擊按鈕添加處理程序:abort.set(true);
+0
除非你(需要)在布爾上做一個比較和交換操作,'volatile boolean'就足夠了。 – desseim
+0
謝謝,我之前沒有使用過atomicboolean。這非常有用。我之前用布爾值嘗試過相同的操作,但他們沒有工作。 – themaster33
相關問題
- 1. android URLConnection和cookies
- 2. 在android上的URLConnection
- 3. Android中的java.io.FileNotFoundException URLConnection
- 4. 當連接斷開時,URLConnection對象返回什麼
- 5. 如何斷開藍牙android中
- 6. Autobahn Android:如何斷開服務器
- 7. 在Android中,如何斷開套接字?
- 8. URLConnection Android 4.2不起作用
- 9. Android URLConnection返回ASCII小數?
- 10. Android URLConnection POST而不是GET
- 11. 未找到android活動urlconnection
- 12. URLConnection和POST方法android
- 13. 如何使用的URLConnection
- 14. Android調試器不斷斷開
- 15. Android:如何阻止(或斷開)Android 5.0+上的呼叫到6.0
- 16. 如何掛斷(斷開,終止,..)致電?
- 17. Android HttpURLConnection斷開連接
- 18. android HttpURLConnection不會斷開?
- 19. Android LogCat設備斷開
- 20. Android藍牙:連接()/斷開()
- 21. Java使用URLConnection來捲曲--verbose開關
- 22. gtk.builder如何斷開信號?
- 23. 如何斷開django信號?
- 24. 如何從AVPlayerItem斷開AVPlayer?
- 25. 如何斷開discord.py(self)bot?
- 26. 如何斷開FireBase插座?
- 27. 如何斷開Postgrex連接?
- 28. 如何斷開在twisted.server
- 29. 如何通過Android中的UrlConnection頭髮送大文本?
- 30. UrlConnection Iphone
要停止下載,取決於您如何閱讀流。您應該粘貼代碼的相關部分。 – desseim