當(dāng)前位置:首頁(yè) > IT技術(shù) > 移動(dòng)平臺(tái) > 正文

安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新
2021-08-08 15:43:40

之前用的友盟更新,但是友盟最近自動(dòng)跟新業(yè)務(wù)要停止服務(wù)了,所以就自己寫(xiě)了這套自動(dòng)更新的代碼使用起來(lái)特別簡(jiǎn)單,幾行代碼就可以快速集成

?

GITHUB源碼:https://github.com/qiushi123/AutomaticUpdate

?

先看效果圖
1,進(jìn)入應(yīng)用更新彈窗,這個(gè)可以自定義(詳看代碼)
安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新_安卓自動(dòng)更新




2,可以在應(yīng)用中查看下載進(jìn)度,也可以暫停下載

安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新_安卓自動(dòng)更新_02安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新_靜默更新_03


3,下載的通知也會(huì)在通知欄里顯示
安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新_github_04


4,下載完成以后可以自動(dòng)安裝
安卓自動(dòng)更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進(jìn)度,幾行代碼快速實(shí)現(xiàn)Android下載更新_靜默更新_05




使用步驟

一,添加類庫(kù)

?

 compile 'com.lzy.net:okhttputils:1.6.7'
 compile 'com.lzy.net:okhttpserver:0.1.7' //擴(kuò)展了下載管理和上傳管理,根據(jù)需要添加
  



二,全局配置
一般在 Aplication,或者基類中,只需要調(diào)用一次即可,可以配置調(diào)試開(kāi)關(guān),全局的超時(shí)時(shí)間,公共的請(qǐng)求頭和請(qǐng)求參數(shù)等信息

public class GApp extends Application {


    @Override
    public void onCreate() {
        super.onCreate();


        HttpHeaders headers = new HttpHeaders();
        headers.put("commonHeaderKey1", "commonHeaderValue1");   //所有的 header都不支持中文
        headers.put("commonHeaderKey2", "commonHeaderValue2");
        HttpParams params = new HttpParams();
        params.put("commonParamsKey1", "commonParamsValue1");   //所有的 params都 支持 中文
        params.put("commonParamsKey2", "這里支持中文參數(shù)");


        //必須調(diào)用初始化
        OkHttpUtils.init(this);
        //以下都不是必須的,根據(jù)需要自行選擇
        OkHttpUtils.getInstance()//
                .debug("OkHttpUtils")                                //是否打開(kāi)調(diào)試
                .setConnectTimeout(OkHttpUtils.DEFAULT_MILLISECONDS) //全局的連接超時(shí)時(shí)間
                .setReadTimeOut(OkHttpUtils.DEFAULT_MILLISECONDS)    //全局的讀取超時(shí)時(shí)間
                .setWriteTimeOut(OkHttpUtils.DEFAULT_MILLISECONDS)   //全局的寫(xiě)入超時(shí)時(shí)間
//     .setCookieStore(new MemoryCookieStore())//cookie使用內(nèi)存緩存(app退出后,cookie消失)
                .setCookieStore(new PersistentCookieStore()) //cookie持久化存儲(chǔ),如果cookie不過(guò)期,則一直有效
                .addCommonHeaders(headers)                               //設(shè)置全局公共頭
                .addCommonParams(params);                               //設(shè)置全局公共參數(shù)
    }
} 


三,實(shí)現(xiàn)下載更新
這里只貼出部分代碼,詳細(xì)代碼可以查看項(xiàng)目里的MainActivity類

case R.id.sure_text:
	initNotify();
	downloadInfo = downloadManager.getTaskByUrl(apkUrl);
	notifyLayout.setVisibility(View.GONE);
	downloadLayout.setVisibility(View.VISIBLE);
	if (downloadInfo == null) {
		downloadManager.addTask(apkUrl, listener);
	} else {
		downloadManager.removeTask(downloadInfo.getUrl());
		downloadSize.setText("--M/--M");
		netSpeed.setText("---/s");
		tvProgress.setText("--.--%");
		pbProgress.setProgress(0);
		download.setText("下載中");
		downloadManager.addTask(apkUrl, listener);
	}
	break;

?

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >