當前位置:首頁 > IT技術 > 移動平臺 > 正文

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

之前用的友盟更新,但是友盟最近自動跟新業(yè)務要停止服務了,所以就自己寫了這套自動更新的代碼使用起來特別簡單,幾行代碼就可以快速集成

?

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

?

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




2,可以在應用中查看下載進度,也可以暫停下載

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


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


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




使用步驟

一,添加類庫

?

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



二,全局配置
一般在 Aplication,或者基類中,只需要調用一次即可,可以配置調試開關,全局的超時時間,公共的請求頭和請求參數等信息

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", "這里支持中文參數");


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


三,實現(xiàn)下載更新
這里只貼出部分代碼,詳細代碼可以查看項目里的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

開通會員,享受整站包年服務立即開通 >