bigapple之utils-update部分apk自動下載安裝

一、前奏 java

常常有這樣一個需求,就是開發安卓項目時,要升級後續版本。實現方式有不少種,大多的實現步驟就是放一份版本信息在服務器端,而後須要檢測的時候,就拿本地apk的版本跟服務器的版本對比,若是不是最新的,就提示用戶進行升級操做。需求來了,升級操做就須要咱們先下載apk,而後調用安卓API進行自動替換安裝。咱們的這個update模塊就是提供給你自動下載和安裝一步到位。固然是否須要升級的版本比較,仍是得你本身作。 git

二、廢話少說先貼上使用方法 程序員

UpdateManager updateManager = new UpdateManager(Main.this);
updateManager.setUpdateCancelListener(new UpdateCancelListener() {
    @Override
    public void updateCancel(CancelEvent cancelEvent) {
        notifyCanGotoLoginActivity();
    }
});
updateManager.setUpdateOkListener(new UpdateOkListener() {
    @Override
    public boolean updateOk() {
        return true;//表示操做更新
    }
});
updateManager.doUpdate(downloadUrl, Constants.UPDATE_APK_PATH + Constants.APK_NAME, updateText);

對,就是這麼簡單。那個doUpdate方法的第一參數表示你要下載的apk網絡地址。第二個參數表示你下載下來的apk的保存路徑。第三個參數,顧名思義,就是在提示用戶下載的提示用語。 github

其中上面的執行結果是,跳出一個對象選擇框,這個選擇框會提示用戶是否進行更新。若是用戶選擇取消,就會被UpdateCancelListener事件監聽到,上面就是跳轉去登陸界面,這裏邏輯本身寫。若是用戶點擊了肯定,就會被UpdateOkListener事件監聽到。UpdateOkListener中的updateOk方法有個返回結果須要你返回。你能夠在這個事件裏作些判斷收尾操做。若是你返回true,那麼就係統就會執行更新操做。接下來的事情就不用你管了。若是你返回false,系統就不會去執行更新操做。那你就能夠本身跳轉到相應界面去便可。 服務器

三、上面的doUpdate方法調用會提示用戶是否下載安裝。若是不想跳出對話框提示用戶是否進行下載安裝。而直接去下載安裝,就能夠直接這樣調用: 網絡

UpdateManager updateManager = new UpdateManager(Main.this);
updateManager.doDownloadInstall(downloadUrl, Constants.UPDATE_APK_PATH + Constants.APK_NAME, updateText);
兩個參數跟上面的同樣。順便說一句,想使用更詳細的配置,可使用UpdateConfig對象做爲參數傳入。

四、特別注意 app

這個更新工具中使用了Handler的消息機制。而安卓默認除開UI線程,其餘線程是不開啓這個消息機制的。因此,在是使用先後開啓一下。Looper.prepare();...中間的代碼就是上面的代碼...Looper.loop();你懂的吧。Looper.loop();後面的代碼不會被立刻執行這個你應該知道的吧,因此要當心哈。 ide


源碼在github上有:https://github.com/bigapple520520/bigapple     也能夠加QQ羣:159392353不過我也是個苦逼的程序員,如今羣裏沒人,就算加了我也只是偶爾回覆一下,上班時間沒有過多時間啊。固然有好的建議咱們仍是能夠交流一下。非誠勿擾哈。 工具

相關文章
相關標籤/搜索