android多線程文件下載
A. 安卓開發時,下載文件時進度條線程阻塞問題(具體如下)
自己debug看一下,在循環最後sleep一下
B. android下載圖片和視頻到本地,求代碼,求案例
下面是android多線程下載例子截圖:
java">packagemm.shandong.com.testmultithreaddownload;
importandroid.app.ProgressDialog;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.Environment;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.text.TextUtils;
importandroid.view.View;
importandroid.widget.EditText;
importandroid.widget.Toast;
importjava.io.File;
importmm.shandong.com.testmultithreaddownload.thread.UpdateUIThread;
importmm.shandong.com.testmultithreaddownload.util.FileUtil;
{
ProgressDialogpb;
EditTexteditText;
Handlerhandler;
=null;
///文件路徑
privateStringurl=
"http://gdown..com/data/wisegame/3c00add7144d3915/kugouyinle.apk";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_multi_thread_down_load);
editText=(EditText)findViewById(R.id.editText);
initHandler();
}
publicvoidinitHandler(){
handler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
caseFileUtil.startDownloadMeg:
pb.setMax(mUpdateUIThread.getFileSize());//開始
break;
caseFileUtil.updateDownloadMeg:
if(!mUpdateUIThread.isCompleted())//下載進度消息
{
pb.setProgress(mUpdateUIThread.getDownloadSize());
pb.setMessage("下載速度:"+
mUpdateUIThread.getDownloadSpeed()+"k/秒"+
"下載百分比"+mUpdateUIThread.getDownloadPercent()+"%");
}else{
pb.setMessage("下載完成");
}
break;
caseFileUtil.endDownloadMeg:
Toast.makeText(.this,
"下載完成,馬上安裝",Toast.LENGTH_SHORT).show();
/*apk安裝界面跳轉*/
Stringfilename=FileUtil.getFileName(url);
Stringstr="/myfile/"+filename;
StringfileName=Environment.getExternalStorageDirectory()+str;
Intentintent=newIntent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(newFile(fileName)),
"application/vnd.android.package-archive");
startActivity(intent);
break;
}
super.handleMessage(msg);
}
};
}
///開始下載軟體
publicvoidstartDownLoad(Viewview){
if(TextUtils.isEmpty(editText.getText().toString())){
Toast.makeText(this,"你輸入下載文件地址",Toast.LENGTH_SHORT).show();
return;
}else{
url=editText.getText().toString();
}
//啟動線程初始化下載參數
mUpdateUIThread=newUpdateUIThread(handler,url,
FileUtil.setMkdir(this)+File.separator,FileUtil.getFileName(url));
pb=newProgressDialog(this);
pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pb.show();
mUpdateUIThread.start();
}
}
例子代碼太長,只能給你一部分,如果想看完整例子代碼,請去360手機助手下載安卓學習手冊,點擊裡面的源碼可以查看完成代碼,方面快速,裡面還有安卓的其它小例子,共108個。
C. 安卓IDM+和ADM哪個好用
是說的IDM下載管理器嗎?很榮幸兩款下載管理器都用過,簡單說兩款軟體界面很相似,都可以被其他應用便捷調用,下載速度幾無二致,唯一的一點就是,IDM+下載器可以下載m3u8視頻文件(自動合並為ts格式),速度較瀏覽器緩存要快得多,其他的區別不大,當然也可以同時安裝試用一下,以找到更合適的。附圖:應用界面。
D. android後台多文件下載怎樣實現
可以創建一個服務,然後開啟多線程下載。不過不推薦多線程,建議使用單線程排隊下載。
E. Android 開發.下載多張圖片保存到本地,大概9M,時間比較3~5分鍾。時間太長了,用戶會等太久,求解決方法
一張圖片的URL想要對應多張圖片基本實現不了,URL是唯一的存在,如果1個URL存在多個內容就出亂子了,除非這個URL不是JPG等結尾,而是HTML等頁面格式結尾,可以把多張圖片放在一個頁面當中。
可以有以下幾種方法:
1.將多張圖片處理成長條的1張圖片,保存時降低精度以減小圖片大小,下載時間可縮短並節約用戶流量。
2.將圖片打包成一個zip包-。-手機可能無法查看
其他方法想不到了。