日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > Android之?dāng)帱c(diǎn)續(xù)傳下載

Android之?dāng)帱c(diǎn)續(xù)傳下載

來源:程序員人生   發(fā)布時間:2014-11-13 08:25:06 閱讀次數(shù):2066次

今天學(xué)習(xí)了Android開發(fā)中比較難的1個環(huán)節(jié),就是斷點(diǎn)續(xù)傳下載,很多人看到這個標(biāo)題就感覺頭大,的確,如果沒有良好的邏輯思惟,這塊的確很難弄明白。下面我就將自己學(xué)到的知識和1些見解寫下供那些在這個環(huán)節(jié)還煩惱的人參考。這里我以下載mp3文件為例。

斷點(diǎn)續(xù)傳下載,顧名思義,那就是我們在1次下載未結(jié)束時,退出下載,第2次下載時會接著第1次下載的進(jìn)度繼續(xù)下載。那末怎樣記錄第1次下載的數(shù)據(jù)呢,這里肯定就要用到http://www.jyygyx.com/db/了。下面就是我創(chuàng)建http://www.jyygyx.com/db/的1個SQLiteOpenHelper類。用來首次運(yùn)行時創(chuàng)建http://www.jyygyx.com/db/。

DBHelper類:

復(fù)制代碼
1 package cn.yj3g.DBHelper; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 7 /** 8 * 建立1個http://www.jyygyx.com/db/幫助類 9 */ 10 public class DBHelper extends SQLiteOpenHelper { 11 //download.db-->http://www.jyygyx.com/db/名 12 public DBHelper(Context context) { 13 super(context, "download.db", null, 1); 14 } 15 16 /** 17 * 在download.dbhttp://www.jyygyx.com/db/下創(chuàng)建1個download_info表存儲下載信息 18 */ 19 @Override 20 public void onCreate(SQLiteDatabase db) { 21 db.execSQL("create table download_info(_id integer PRIMARY KEY AUTOINCREMENT, thread_id integer, " 22 + "start_pos integer, end_pos integer, compelete_size integer,url char)"); 23 } 24 @Override 25 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 26 27 } 28 29 }
復(fù)制代碼

下面來看主界面的布局,在這里,我只設(shè)計了1個ListView來顯示下載的音樂的名稱,和1個開始下載按鈕和1個暫停按鈕。

布局文件以下:

main.xml:

復(fù)制代碼
1 <?xml version="1.0" encoding="utf⑻"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 android:id="@+id/llRoot"> 7 <ListView android:id="@android:id/list" 8 android:layout_width="fill_parent" 9 android:layout_height="fill_parent"> 10 </ListView> 11 </LinearLayout>
復(fù)制代碼

list_item.xml:

復(fù)制代碼
1 <?xml version="1.0" encoding="utf⑻"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="wrap_content"> 6 <LinearLayout 7 android:orientation="horizontal" 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:layout_marginBottom="5dip"> 11 <TextView 12 android:layout_width="fill_parent" 13 android:layout_height="wrap_content" 14 android:layout_weight="1" 15 android:id="@+id/tv_resouce_name"/> 16 <Button 17 android:layout_width="fill_parent" 18 android:layout_height="wrap_content" 19 android:layout_weight="1" 20 android:text="下載" 21 android:id="@+id/btn_start" 22 android:onClick="startDownload"/> 23 <Button 24 android:layout_width="fill_parent" 25 android:layout_height="wrap_content" 26 android:layout_weight="1" 27 android:text="暫停" 28 android:id="@+id/btn_pause" 29 android:onClick="pauseDownload"/> 30 </LinearLayout> 31 </LinearLayout>
復(fù)制代碼

主界面運(yùn)行效果以下:

下面我們來看具體實(shí)現(xiàn)下載的方法。首先,我們要定義1個記錄在下載時各個時期的數(shù)據(jù)的類,這里我創(chuàng)建了1個DownloadInfo類來記錄。代碼以下:

DownloadInfo:

復(fù)制代碼
1 package cn.yj3g.entity; 2 /** 3 *創(chuàng)建1個下載信息的實(shí)體類 4 */ 5 public class DownloadInfo { 6 private int threadId;//下載器id 7 private int startPos;//開始點(diǎn) 8 private int endPos;//結(jié)束點(diǎn) 9 private int compeleteSize;//完成度 10 private String url;//下載器網(wǎng)絡(luò)標(biāo)識 11 public DownloadInfo(int threadId, int startPos, int endPos, 12 int compeleteSize,String url) { 13 this.threadId = threadId; 14 this.startPos = startPos; 15 this.endPos = endPos; 16 this.compeleteSize = compeleteSize; 17 this.url=url; 18 } 19 public DownloadInfo() { 20 } 21 public String getUrl() { 22 return url; 23 } 24 public void setUrl(String url) { 25 this.url = url; 26 } 27 public int getThreadId() { 28 return threadId; 29 } 30 public void setThreadId(int threadId) { 31 this.threadId = threadId; 32 } 33 public int getStartPos() { 34 return startPos; 35 } 36 public void setStartPos(int startPos) { 37 this.startPos = startPos; 38 } 39 public int getEndPos() { 40 return endPos; 41 } 42 public void setEndPos(int endPos) { 43 this.endPos = endPos; 44 } 45 public int getCompeleteSize() { 46 return compeleteSize; 47 } 48 public void setCompeleteSize(int compeleteSize) { 49 this.compeleteSize = compeleteSize; 50 } 51 52 @Override 53 public String toString() { 54 return "DownloadInfo [threadId=" + threadId 55 + ", startPos=" + startPos + ", endPos=" + endPos 56 + ", compeleteSize=" + compeleteSize +"]"; 57 } 58 }
復(fù)制代碼

在下載時,我們有進(jìn)度條來顯示進(jìn)度,怎樣肯定進(jìn)度條的進(jìn)度,大小和起始位置呢?這里我定義了1個LoadInfo類來記錄下載器詳細(xì)信息。代碼以下:

LoadInfo:

復(fù)制代碼
1 package cn.yj3g.entity; 2 /** 3 *自定義的1個記載下載器詳細(xì)信息的類 4 */ 5 public class LoadInfo { 6 public int fileSize;//文件大小 7 private int complete;//完成度 8 private String urlstring;//下載器標(biāo)識 9 public LoadInfo(int fileSize, int complete, String urlstring) { 10 this.fileSize = fileSize; 11 this.complete = complete; 12 this.urlstring = urlstring; 13 } 14 public LoadInfo() { 15 } 16 public int getFileSize() { 17 return fileSize; 18 } 19 public void setFileSize(int fileSize) { 20 this.fileSize = fileSize; 21 } 22 public int getComplete() { 23 return complete; 24 } <
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人在线免费网站 | 国产精品久久久久久一区二区三区 | 日本午夜视频 | 一区二区三区中文字幕 | 综合久久狠狠色成人网 | 欧美少妇一区二区 | 日韩电影一区二区三区 | 天天干女人 | 亚洲精品一区二区三区不 | 黄色片免费在线观看 | 亚洲视频在线免费观看 | 在线亚洲一区二区 | 日韩美女乱淫aaa高清视频 | 精品国产乱码久久久久久丨区2区 | 日韩在线观看中文字幕 | 久久久网站 | 久久精品123 | 欧美日韩视频一区二区三区 | 欧美精品在线一区二区三区 | 国产精品久久久久久久久久大牛 | 久国久产久精永久网页 | 欧美亚洲福利 | 色在线播放 | 久久久久国产精品一区二区 | 国内偷拍av | 国产伦精品一区二区三区免费 | 国产香蕉视频在线播放 | 嫩呦国产一区二区三区av | 国产一区二区三区欧美 | 玖玖国产精品视频 | 中文字幕亚洲一区 | 欧美国产中文字幕 | 黄色片网站免费看 | 国产激情在线视频 | 日韩av电影免费看 | a级毛片免费高清视频 | 国产精品久久久久久亚洲伦 | 成人欧美一区二区三区 | av动漫一区 | 日韩精品电影 | 成人午夜在线 |