日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android在线更新安装包,Android在线更新下载方案

發(fā)布時間:2024/9/27 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android在线更新安装包,Android在线更新下载方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目的

App的在線更新是每一個項目必有的功能,但在過程當(dāng)中會遇到一些問題,在此記錄下心得。

步驟

1、將最新版本號和本地版本號進(jìn)行對比;

2、如需更新,則彈出更新提示對話框;

3、下載更新APK文件,并顯示進(jìn)度條和通知欄;

4、安裝APK

具體流程

一、通過網(wǎng)絡(luò)接口獲取到線上最新版本號,將最新版本號和本地版本號進(jìn)行對比

首先從網(wǎng)絡(luò)回調(diào)接口中獲取最新版本號,再將本地版本號與最新版本號進(jìn)行對比,如果需要更新則彈出對話框

/**

* 更新提示對話框

*/

public void appUpdateDialog(final Context context, final UpdateCheckRetBean bean) {

new MaterialDialog.Builder(context)

.title("金米米") //標(biāo)題內(nèi)容

.titleColor(Color.parseColor("#FFC736")) //標(biāo)題顏色

.iconRes(R.drawable.ic_logo_share) //圖標(biāo)

.content(bean.getDetail()) //內(nèi)容

.positiveText("立即更新") //選擇更新

.canceledOnTouchOutside(false) //觸摸窗口邊界以外是否關(guān)閉窗口,設(shè)置 false

.onPositive(new MaterialDialog.SingleButtonCallback() {

@Override

public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

dialog.dismiss();

downloadDialog(context, bean.getUrl()); //應(yīng)用下載

setNotification(context, bean.getDetail()); //顯示通知欄

}

})

.negativeText("取消") //選擇取消

.onNegative(new MaterialDialog.SingleButtonCallback() {

@Override

public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

dialog.dismiss();

}

})

.show();

}

三、下載更新APK文件,并顯示進(jìn)度條和通知欄

這部分是重點,分三部分解決:

1、顯示進(jìn)度條:

/**

* 應(yīng)用下載對話框

*

* @param downloadUrl APK下載鏈接

*/

private void downloadDialog(final Context mContext, String downloadUrl) {

downLoadDialog = new MaterialDialog.Builder(mContext)

.customView(R.layout.layout_app_update, false) //自定義View

.title("更新中...")

.iconRes(R.drawable.ic_logo_share)

.titleColor(Color.parseColor("#FFC736"))

.negativeText("取消下載") //選擇取消

.canceledOnTouchOutside(false) // 觸摸窗口邊界以外是否關(guān)閉窗口,設(shè)置 false

.onNegative(new MaterialDialog.SingleButtonCallback() {

@Override

public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {

ToastUtils.showShortToast(mContext, "取消更新");

dialog.dismiss();

notificationManager.cancel(NOTIFICATION_ID); //取消通知欄

OkHttpClientUtil.getInstance().cancelOkHttp("download"); //取消下載更新

}

})

.build();

//攔截手機(jī)返回鍵

downLoadDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {

@Override

public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {

ToastUtils.showShortToast(mContext, "進(jìn)入后臺下載模式");

return keyCode != KeyEvent.KEYCODE_BACK &&

downLoadDialog != null && downLoadDialog.isShowing();

}

});

npbDownload = downLoadDialog.getCustomView().findViewById(R.id.npb_download); //設(shè)置進(jìn)度條

npbDownload.setProgressTextSize(45); //設(shè)置進(jìn)度條字體大小

downLoadDialog.show();

downloadApk(mContext, downloadUrl); //下載更新APK

}

3、通知欄展示進(jìn)度:

/**

* 創(chuàng)建通知欄

*/

private void setNotification(Context context, String detail) {

notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

notification = new Notification.Builder(context);

notification.setSmallIcon(R.drawable.ic_16) //設(shè)置通知的圖標(biāo)

.setTicker("正在加載更新包") //設(shè)置狀態(tài)欄的標(biāo)題

.setContentTitle("正在加載更新包") //設(shè)置標(biāo)題

.setContentText(detail) //設(shè)置內(nèi)容

.setDefaults(Notification.FLAG_NO_CLEAR) //設(shè)置默認(rèn)的提示音

.setPriority(Notification.PRIORITY_DEFAULT) //設(shè)置該通知的優(yōu)先級

.setOngoing(true) //讓通知左右滑的時候不能取消通知

.setWhen(System.currentTimeMillis()) //設(shè)置通知時間,默認(rèn)為系統(tǒng)發(fā)出通知的時間,通常不用設(shè)置

.setAutoCancel(true); //打開程序后圖標(biāo)消失

//解決5.0系統(tǒng)通知欄白色I(xiàn)con的問題

Drawable appIcon = getAppIcon(context);

Bitmap drawableToBitmap = null;

if (appIcon != null) {

drawableToBitmap = drawableToBitmap(appIcon);

}

if (drawableToBitmap != null) {

notification.setSmallIcon(R.drawable.ic_16);

notification.setLargeIcon(drawableToBitmap);

} else {

notification.setSmallIcon(context.getApplicationInfo().icon);

}

Notification notify = notification.build();

notify.flags |= FLAG_ONLY_ALERT_ONCE;

notificationManager.notify(NOTIFICATION_ID, notify);

}

/**

* 合成更新的Icon

*

* @param drawable

* @return

*/

public Bitmap drawableToBitmap(Drawable drawable) {

Bitmap bitmap = Bitmap.createBitmap(

drawable.getIntrinsicWidth(),

drawable.getIntrinsicHeight(),

drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);

Canvas canvas = new Canvas(bitmap);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

drawable.draw(canvas);

return bitmap;

}

/**

* 獲取App的Icon

*

* @param context

* @return

*/

public Drawable getAppIcon(Context context) {

try {

return context.getPackageManager().getApplicationIcon(context.getPackageName());

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}

return null;

}

總結(jié)

以上是生活随笔為你收集整理的Android在线更新安装包,Android在线更新下载方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看亚洲视频 | 男女互操在线观看 | 中文字幕一区二区在线播放 | 日韩tv| 不卡一区在线 | 亚洲欧美日韩一区二区三区四区 | 视频区图片区小说区 | 亚洲加勒比在线 | 红桃视频国产精品 | 日韩福利视频在线观看 | 台湾av在线播放 | 国产精品一区电影 | 欧美日韩国产电影 | 欧洲亚洲综合 | 最新国产视频 | 国产乱码精品一区二区三区精东 | 久久久老熟女一区二区三区91 | 国产日本在线观看 | 麻豆国产av超爽剧情系列 | 永久中文字幕 | 亚洲中文字幕一区二区在线观看 | 五月婷婷六月婷婷 | 黄色小视频在线观看 | 青娱乐在线视频免费观看 | 日本丰满少妇一区二区三区 | 综合激情伊人 | 九九九热视频 | 五月丁香| 日本中文字幕在线 | 动漫美女被艹 | 91丨porny丨国产 | 国产在线一区二区视频 | 日韩淫视频 | 精品免费一区二区 | 久久精品一日日躁夜夜躁 | 超碰在线色 | 日本一本久久 | 国产真实乱偷精品视频 | 国产成人精品视频ⅴa片软件竹菊 | 五月天在线观看 | 丁香花电影在线观看免费高清 | 亚洲欧美日韩成人在线 | 黄色免费视屏 | 99爱爱视频 | 台湾性dvd性色av | 95视频在线 | 亚洲欧美www | 成人亚洲综合 | 色综合88| 国产调教| 免费黄色视屏 | 国产伦理av | 国产偷拍一区二区 | 激情xxxx | 免费在线观看成人 | 成人av地址| 九九九国产| 51自拍视频 | 欧美熟妇激情一区二区三区 | 爱爱精品 | 亚洲中午字幕 | 欧洲中文字幕 | 国产国产乱老熟女视频网站97 | 在线观看免费视频黄 | 人妻 丝袜美腿 中文字幕 | 综合网伊人 | 在线观看高清视频 | 色丁香婷婷综合久久 | 黄色www | 国产精品视频久久久久 | 毛片基地站 | 我要爱爱网| 欧美一级黄色片在线观看 | 国产精品久久久久久久久免费桃花 | 日韩精品电影 | 吃奶摸下的激烈视频 | 亚洲天堂色图 | 中文字幕亚洲色图 | 粉嫩av蜜桃av蜜臀av | 五月天久久综合 | 91欧美视频 | 99中文字幕在线观看 | 97福利 | 日韩有码一区 | 在线国产一区 | 国产精品一区二区6 | 伊人中文字幕在线观看 | 黄在线观看免费 | 在线看一区| 你懂得在线| 日日夜夜撸撸 | 亚洲精选一区二区三区 | 亚洲欧美在线观看视频 | 免费涩涩视频 | 欧美一级大片在线观看 | 制服丝袜第一页在线观看 | 又黄又爽又色的视频 | 国产精品视频久久久久 | 一级片在线观看视频 |