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的销毁。