다운로드 또는 업로드가 당신의 UI에서 다운로드 작업을 분할하기 위해 AsycTask을 사용하는 것입니다 처리 여부 HTTP 요청을 실행하는 가장 좋은 방법은,
시도하는 방법이 코드를 넣어 파일을 다운로드하여 호출 당신은 AsyncTask를를 사용하는 경우, 당신은 아래에 주어진 코드
에서이 진행의에서는 ProgressBar를 추가하고 업데이트 할 수 있습니다
updateProgress(downloadedSize,totalSize);
try {
//set the download URL, a url that points to a file on the internet
//this is the file to be downloaded
URL url = new URL("File Url");
//create the new connection
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//set up some things on the connection
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
//connect!
urlConnection.connect();
//set the path where we want to save the file
//in this case, going to save it on the root directory of the
//sd card.
File SDCardRoot = Environment.getExternalStorageDirectory();
//create a new file, specifying the path, and the filename
//which we want to save the file as.
File file = new File(SDCardRoot,"song.extension");
//this will be used to write the downloaded data into the file we created
FileOutputStream fileOutput = new FileOutputStream(file);
//this will be used in reading the data from the internet
InputStream inputStream = urlConnection.getInputStream();
//this is the total size of the file
int totalSize = urlConnection.getContentLength();
//variable to store total downloaded bytes
int downloadedSize = 0;
//create a buffer...
byte[] buffer = new byte[1024];
int bufferLength = 0; //used to store a temporary size of the buffer
//now, read through the input buffer and write the contents to the file
while ((bufferLength = inputStream.read(buffer)) > 0) {
//add the data in the buffer to the file in the file output stream (the file on the sd card
fileOutput.write(buffer, 0, bufferLength);
//add up the size so we know how much is downloaded
downloadedSize += bufferLength;
//this is where you would do something to report the prgress, like this maybe
//updateProgress(downloadedSize, totalSize); if your run this code from AsyncTask
}
//close the output stream when done
fileOutput.close();
//catch some possible errors...
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
노래 파일의 확장자는 무엇 주석 진행 상황을 업데이트하는 방법? –
서버가 해당 정보를 보내지 않았습니다. 스트림을 열고 read()를 시작하기 만하면됩니다. – greenapps
@ Nadir 나는 aac.m4a, avf.mp3와 같은 다른 파일 확장자를 가지고있다. – Ravi