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

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

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

    ?

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

    ?

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




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

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


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


    4,下載完成以后可以自動安裝
    安卓自動更新,靜默更新,替換友盟更新可以在通知欄里顯示更新下載進度,幾行代碼快速實現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);                               //設置全局公共參數
        }
    } 


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

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码