public class MyInfo extends Activity{
private ArrayList<MainInfoBean> m_beanList = new ArrayList<MainInfoBean>();
private AQuery aq;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myinfo);
aq = new AQuery(this);
final ArrayList<FileDownload> filedownloadList = new ArrayList<FileDownload>();
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {
FileDownload fd = new FileDownload();
filedownloadList.add(fd);
Log.e("H3c","-----1------"+filedownloadList.size());
try {
fd.init("http://gdown.baidu.com/data/wisegame/c5205df8a4e6cc3a/renren_5090400.apk", "/mnt/sdcard","h3cTest.apk","123");
} catch (IOException e) {
e.printStackTrace();
}
}
});
Thread myThread2 = new Thread(new Runnable() {
@Override
public void run() {
FileDownload fd = new FileDownload();
filedownloadList.add(fd);
Log.e("H3c","-----2------"+filedownloadList.size());
try {
fd.init("http://gdown.baidu.com/data/wisegame/c5205df8a4e6cc3a/renren_5090400.apk", "/mnt/sdcard","h3cTest2.apk","1234");
} catch (IOException e) {
e.printStackTrace();
}
}
});
DownloadManager dm = DownloadManager.getInstance();
dm.Init();
dm.addDownloadTask(myThread);
dm.addDownloadTask(myThread2);
new Thread(
new Runnable() {
@Override
public void run() {
while (true){
Log.e("H3c",filedownloadList.size()+"-=-=");
for(FileDownload ffd :filedownloadList)
{
Log.e("H3c",ffd.getProgress()+"=");
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
).start();
// initData();
// initView();
}
public void initData(){
m_beanList.clear();
for (int n = 0;n < 45;n++) {
MainInfoBean tmpBean = new MainInfoBean();
tmpBean.setMainTitle("我的第"+n+"幅作品");
tmpBean.setMainAuthor("H3c");
m_beanList.add(tmpBean);
}
String url = "http://112.65.187.114:8808/eia/ieia?method=getPoint&sessionId=EEF483F9045FF6DBE90B37CEE93C46C4";
aq.ajax(url, JSONObject.class, this, "jsonCallback");
aq.ajax(url, String.class, new AjaxCallback<String>() {
@Override
public void callback(String url, String html, AjaxStatus status) {
Log.e("H3c","web:"+html);
}
});
}
public void jsonCallback(String url, JSONObject json, AjaxStatus status){
if(json != null){
//successful ajax call
Log.e("H3c",json.toString());
}else{
//ajax error
Log.e("H3c","error:"+status.getCode());
Toast.makeText(aq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
}
}
public void initView(){
aq.id(R.id.main_listview).adapter(new MainListAdapter(m_beanList,this));
aq.id(R.id.main_listview).scrolled(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int i) {
// 判断是否滚动到底部
boolean scrollEnd = false;
try {
if (view.getPositionForView(aq.id(R.id.main_listview).getListView()) == view
.getLastVisiblePosition())
scrollEnd = true;
} catch (Exception e) {
scrollEnd = false;
}
Log.e("H3c",scrollEnd+"===="+view.getPositionForView(aq.id(R.id.main_listview).getListView())+"----"+ view
.getLastVisiblePosition());
}
@Override
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
}
});
}
}
package com.h3c.helenstudio.download;
import android.util.Log;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
/**
* Created by Administrator on 13-6-11.
*/
public class FileDownload {
private String m_fileUri;
private int m_fileSize;
private float downLoadFilePosition;//文件下载进度
private String m_fileName;
private String m_filePath;
private String m_TAG;
public int getProgress() {
if (m_fileSize == 0)
{
return 0;
}
return (int)(downLoadFilePosition / m_fileSize * 100);
}
public boolean start() {
return false;
}
public boolean pause() {
return false;
}
public boolean stop() {
return false;
}
public void setFileDownloadUrl(String uri) {
this.m_fileUri = uri;
}
public void setFileName(String fileName) {
this.m_fileName = fileName;
}
public void init(String url, String filePath, String fileName, String fileTag) throws IOException {
if (fileName == null || fileName == "") {
this.m_fileName = url.substring(url.lastIndexOf("/") + 1);
} else {
this.m_fileName = fileName;
}
this.m_filePath = filePath;
this.m_fileUri = url;
URL Url = new URL(url);
URLConnection conn = Url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
this.m_fileSize = conn.getContentLength();// 根据响应获取文件大小
if (this.m_fileSize <= 0) { // 获取内容长度为0
throw new RuntimeException("无法获知文件大小 ");
}
if (is == null) { // 没有下载流
// sendMsg(Down_ERROR);
throw new RuntimeException("无法获取文件");
}
FileOutputStream FOS = new FileOutputStream(this.m_filePath +"/"+ this.m_fileName); // 创建写入文件内存流,通过此流向目标写文件
byte buf[] = new byte[2048];
downLoadFilePosition = 0;
Log.e("H3c","start");
int numRead;
while ((numRead = is.read(buf)) != -1) {
FOS.write(buf, 0, numRead);
downLoadFilePosition += numRead;
// Log.e("H3c",Thread.currentThread().getId()+"read:"+downLoadFilePosition);
}
try {
is.close();
FOS.close();
} catch (Exception ex) {
}
Log.e("H3c","success");
}
public void setTag(String tag) {
this.m_TAG = tag;
}
public void setFilePath(String filePath) {
this.m_filePath = filePath;
}
}
package com.h3c.helenstudio.download;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Created by Administrator on 13-6-11.
*/
public class DownloadManager {
ExecutorService pool;
private static DownloadManager instance=null;
public static DownloadManager getInstance() {
if(instance==null)
instance=new DownloadManager();
return instance;
}
public void addDownloadTask(Thread thread)
{
pool.submit(thread); //加入线程
}
public void Init()
{
pool = Executors.newFixedThreadPool(3);
// pool.execute(new Thread(){ // 所有线程结束之后执行
// public void run()
// {
// pool.execute(new Thread(){
// public void run()
// {
//
// }
// });
// }
// });
}
}