android實現下載
❶ android通過http post實現文件下載
可參照我的如下代碼
java">java.io.OutputStreamos=null;
java.io.InputStreamis=null;
try{
java.io.Filefile=newjava.io.File(str_local_file_path);
if(file.exists()&&file.length()>0){
}else{
file.createNewFile();
java.net.URLurl=newjava.net.URL(str_url);
java.net.HttpURLConnectionconn=(java.net.HttpURLConnection)url.openConnection();
os=newjava.io.FileOutputStream(file);
is=conn.getInputStream();
byte[]buffer=newbyte[1024*4];
intn_rx=0;
while((n_rx=is.read(buffer))>0){
os.write(buffer,0,n_rx);
}
}
returntrue;
}catch(MalformedURLExceptione){
}catch(IOExceptione){
}finally{
os.flush();
os.close();
is.close();
}
returnfalse;
❷ android後台多文件下載怎樣實現
可以創建一個服務,然後開啟多線程下載。不過不推薦多線程,建議使用單線程排隊下載。
❸ android項目,想實現先從網上下載數據,以後可以從本地的sqllite資料庫里調用,並且定時的更新資料庫
給你提供個大概思路:
1、首先是下載數據
主要方式:a、套接字通信。 特點:快速,效率高。 但修改麻煩、適用性低。
b、webservice通信。特點:無狀態通信,輕便,較實用,應變強、跨平台等,但它依 賴於伺服器的webservice方法。
c、hession通信/json通信。特點:跨平台,速度快(至少比xml快)。
d、下載服務端生成好的數據文件,然後再本地解析。特點:穩定、判斷性強,可以 多線程實現,提 高效率,還可用作備份。
2、 定時更新
主要方式:開啟一個時間服務,監聽系統的時間變化廣播,系統的時、分發生變化時,都會有一個廣播,你可以監聽此廣播,並在需要的時候向伺服器發送更新請求。
或者,定製定時任務,這個可以直接網路alarmManager相關內容。
答此,已畢,純手工,望對君有幫助。
❹ android如何調用系統自帶文件下載功能
文件下載是那種從網上下載的那種嗎?
如果是的話有一種http下載
1.直接打開文件
A.創建一個一個URL對象url = new URL(urlStr);這個url可以直接是網路下載地址。
B.通過URL對象,創建一個HttpURLConnection對象
// 創建一個Http連接
HttpURLConnection urlConn = (HttpURLConnection) url
.openConnection();
C.得到InputStram,這個輸入流相當於一個管道,將網路上的數據引導到手機上。但是單純的對於InputStram不好進行操作,它是位元組流,因此用InputStreamReader把它轉化成字元流。然後在它上面再套一層BufferedReader,這樣就能整行的讀取數據,十分方便。這個在java的socket編程中我們已經見識過了。
// 使用IO流讀取數據
buffer = new BufferedReader(new InputStreamReader(urlConn
.getInputStream()));
D.從InputStream當中讀取數據
while ((line = buffer.readLine()) != null) {
sb.append(line);}
2.文件存到sd卡中
SDPATH = Environment.getExternalStorageDirectory() + "/"
File dir = new File(SDPATH + dirName);
dir.mkdirs();
File file = new File(SDPATH + dirName + fileName);
file.createNewFile()
url = new URL(urlStr);這個url可以直接是網路下載地址。
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
inputStream inputStream =urlConn.getInputStream()
output = new FileOutputStream(file);
byte buffer [] = new byte[4 * 1024];
while((inputStream.read(buffer)) != -1)
{
output.write(buffer);
}//
❺ 我android想點擊後一直不斷的下載,這樣用handle的實現方式不對嗎
建議樓主把下載操作放在service裡面進行。
原因:
在handler裡面下載容易造成內存泄露。當activity結束後,下載還沒有結束的情況下,就會出現。而service的生命周期跟application是一樣的,所以不必擔心。
如果業務需要要在activity的handler中進行下載,請使用WeakReference對傳入的activity做一個弱引用,這樣下載未結束時,不影響activity的銷毀。