最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android實(shí)現(xiàn)程序自動(dòng)升級(jí)到安裝示例分享(下載android程序安裝包)

 更新時(shí)間:2014年01月19日 15:26:06   作者:  
這篇文章主要介紹了android實(shí)現(xiàn)下載android程序安裝包自動(dòng)升級(jí)的示例,大家參考使用吧

復(fù)制代碼 代碼如下:

//程序下載升級(jí) zhouxiang
@JavascriptInterface
public void UpdateCAECP(final String path){
try{
AlertDialog.Builder builder = new Builder((Context)obj);
builder.setMessage(“檢測(cè)到有新版本發(fā)布,是否進(jìn)行下載升級(jí)?”);
builder.setTitle("程序更新提示");
builder.setPositiveButton("升級(jí)", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
m_pDialog = new ProgressDialog((Context)obj);
m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
m_pDialog.setTitle("程序升級(jí)中");
m_pDialog.setMessage("正在下載最新版的CAECP,請(qǐng)等候…");
m_pDialog.setIcon(R.drawable.ic_launcher);
m_pDialog.setProgress(100);
m_pDialog.setIndeterminate(false);
//設(shè)置ProgressDialog 是否可以按退回按鍵取消
m_pDialog.setCancelable(true);
m_pDialog.show();
new CAECP_DownloadFile(m_pDialog,(Context)obj).execute(path);
}
});
builder.setNegativeButton("取消", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
builder.create().show();
}catch(Exception e){
Alert("升級(jí)提示", e.getMessage(), "確認(rèn)");
}
}

復(fù)制代碼 代碼如下:

//zhouxiang 文件下載百分比 及 自動(dòng)安裝
public class CAECP_DownloadFile extends AsyncTask{
ProgressDialog m_pDialog=null;
String path="/sdcard/caecp/caecp.apk";
static String chattemp = "/sdcard/caecp/chat.caecp";
static String usertemp = "/sdcard/caecp/user.caecp";
Context obj;
CAECP_DownloadFile(ProgressDialog m_pDialog2,Context obj2){
m_pDialog=m_pDialog2;
obj=obj2;
}
@Override
protected String doInBackground(String… sUrl) {
try {
URL url = new URL(sUrl[0]);
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(path);
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
m_pDialog.setProgress((int) (total * 100 / fileLength));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
DownCAECP_Ok();
} catch (Exception e) {
}
return null;
}
//下載CAECP文件完成,啟動(dòng)新線(xiàn)程,調(diào)用系統(tǒng)進(jìn)行安裝
public void DownCAECP_Ok(){
new Thread(){
public void run() {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setDataAndType(Uri.parse("file://" + path),"application/vnd.android.package-archive");
obj.startActivity(i);
}
}.start();
}

相關(guān)文章

  • Android ListView實(shí)現(xiàn)下拉頂部圖片變大效果

    Android ListView實(shí)現(xiàn)下拉頂部圖片變大效果

    這篇文章主要為大家詳細(xì)介紹了Android ListView實(shí)現(xiàn)下拉頂部圖片變大,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 詳解Android創(chuàng)建Handler的必備知識(shí)點(diǎn)

    詳解Android創(chuàng)建Handler的必備知識(shí)點(diǎn)

    本篇文章主要介紹Handler中需要了解的幾個(gè)必備知識(shí)點(diǎn),比如Handler創(chuàng)建、異步Handler是個(gè)啥及如何創(chuàng)建,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • Kotlin基礎(chǔ)學(xué)習(xí)之位運(yùn)算

    Kotlin基礎(chǔ)學(xué)習(xí)之位運(yùn)算

    一提起位運(yùn)算,人們往往想到它的高效性,無(wú)論是嵌入式編程還是優(yōu)化系統(tǒng)的核心代碼,適當(dāng)?shù)倪\(yùn)用位運(yùn)算總是一種迷人的手段,下面這篇文章主要給大家介紹了關(guān)于Kotlin基礎(chǔ)學(xué)習(xí)之位運(yùn)算的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-11-11
  • Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    這篇文章主要介紹了Flutter Http分塊下載與斷點(diǎn)續(xù)傳的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Android獲取apk簽名指紋的md5值(防止重新被打包)的實(shí)現(xiàn)方法

    Android獲取apk簽名指紋的md5值(防止重新被打包)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Android獲取apk簽名指紋的md5值以防止重新被打包的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Android獲取apk md5值的常用技巧,需要的朋友可以參考下
    2016-07-07
  • Android SwipeRefreshLayout超詳細(xì)講解

    Android SwipeRefreshLayout超詳細(xì)講解

    在android開(kāi)發(fā)中,使用最多的數(shù)據(jù)刷新方式就是下拉刷新了,而完成此功能我們使用最多的就是第三方的開(kāi)源庫(kù)PullToRefresh?,F(xiàn)如今,google也忍不住推出了自己的下拉組件SwipeRefreshLayout,下面我們通過(guò)api文檔和源碼來(lái)分析學(xué)習(xí)如何使用SwipeRefreshLayout
    2022-11-11
  • 新版Android Studio3.6找不到R.java怎么處理

    新版Android Studio3.6找不到R.java怎么處理

    這篇文章主要介紹了新版Android Studio3.6找不到R.java怎么處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Android中APK簽名工具之jarsigner和apksigner詳解

    Android中APK簽名工具之jarsigner和apksigner詳解

    這篇文章主要給大家介紹了關(guān)于Android中APK簽名工具之jarsigner和apksigner的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Android自定義ViewPager實(shí)例

    Android自定義ViewPager實(shí)例

    這篇文章主要介紹了Android自定義ViewPager的方法,結(jié)合完整實(shí)例形式分析了Android基于ViewGroup類(lèi)自定義ViewPager的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02
  • Android BLE設(shè)置MTU大小實(shí)現(xiàn)詳解

    Android BLE設(shè)置MTU大小實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Android BLE設(shè)置MTU大小實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論

北京市| 湖州市| 深泽县| 农安县| 灵武市| 贺州市| 吉林省| 九龙县| 通道| 荥阳市| 大名县| 竹北市| 周宁县| 丹凤县| 色达县| 中山市| 南木林县| 且末县| 阿城市| 德兴市| 高州市| 正镶白旗| 米易县| 正阳县| 云林县| 凌云县| 上思县| 营山县| 平阳县| 太仆寺旗| 固安县| 奈曼旗| 滦平县| 兴仁县| 苍南县| 嘉峪关市| 青龙| 鹰潭市| 米脂县| 健康| 贡嘎县|